# 植物大战僵尸 **Repository Path**: goingme/plants-vs.-zombies-games ## Basic Information - **Project Name**: 植物大战僵尸 - **Description**: 一个由C++实现的、复刻植物大战僵尸中锤僵尸的小游戏。还原使用了植物大战僵尸的音效和僵尸植物动作。继承于项目https://codebus.cn/jihe/,在此基础上添加了文档和改进(学习前需要安装easyx和VS C++) - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2023-07-31 - **Last Updated**: 2024-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: 植物大战僵尸, Visual-studio-CPP, 锤僵尸, 还原复刻 ## README # 植物大战僵尸 :smile::本项目的主旨是学习用easyx开发项目,从中学到C++封装继承的使用 :smile::本项目提供了完成的程序和相关资源,以及一些项目文档 :smile::本项目尽最大可能还原植物大战僵尸中的状态关系、界面和键,尽管如此在状态关系中还存在架构和细节的优化空间,欢迎评选指正! image-20230731194335045 ## 功能 跳转功能主要以鼠标点击作为触发事件 在实现中主要构建了植物、阳光、僵尸、锤击效果等类,将墓碑等设置成了地图状态 使用的函数库主要为easyx图形库和windows.h窗口句柄,由此进行窗口显示、图片音乐加载等 僵尸图片为整个僵尸,剩余资源基本可在植物大战僵尸安装资源中找到 僵尸吃植物的动作由于存在部分异常,故暂时进行移除 植物、阳光、僵尸等剩余优化可联系本作者1922929962@qq.com ### 加载 实现了加载存档功能,能够通过菜单直接保存游戏 能够在开始界面选择加载已预存的存档 存档在特定文件夹中,可以备份后进行游戏或测试 点击菜单时会有经典的返回声 ### 面板 开始面板能够新建存档、显示已有存档,显示贴图为经典图像框 左上角是阳光显示面板和植物选购;右上角是菜单键可以直接返回存档界面 image-20230804232240272 ### 僵尸 有铁桶僵尸、路障僵尸和普通僵尸,僵尸已实现出土、和行走的动作,以及冰冻和减速效果 为铁桶僵尸设置了专属敲击声,僵尸在敲击后可变为普通僵尸 僵尸行走中可能发出随机的哀嚎声等 僵尸的删死亡动作表述为直接删除僵尸本身,也就是直接不显示图片 僵尸生成的概率受墓碑数量影响,后续会增加 image-20230804234514588 ### 墓碑 墓碑只在初始化时随机生成不同形状 墓碑吞噬者只能防灾墓碑上,此处状态会变成墓碑吞噬者+墓碑 image-20230804234751391 ### 植物 不同植物都有对应的动作,通过逐帧加载图片进行更新 土豆雷在一段时间后会变成出土状态 寒冰菇在释放后有全屏冰花的效果,并对僵尸产生冰冻 墓碑吞噬者确实能动但尚未写成会向下移动的功能 image-20230804234850486 ### 阳光 僵尸死亡后一定概率会生成3个阳光 阳光搜集后会更新阳光量(已加入音效),不及时获取会消失 阳光的掉落也会受墓碑数影响 image-20230804234926693 ### 输赢 失败的情况是僵尸走进了你的院子,在戴夫的尖叫中你会听到失败的BGM 获胜会有返回的弹窗,你也可以重新开始,并加载了经典的欢快音乐 获胜的判定是你击败了所有的僵尸和墓碑,彩蛋(忘写保存了,你可以一直回到获胜前的存档):dog: image-20230804235008813 ## 加入 欢迎加入这个项目的开发、优化或学习,不过消息回复可能有点慢~