- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
CS100HW8样例游戏参考
注意
⚫请为本次作业分配充足的时间(参考:至少3天),并且不要到临近截止日期时
才开始!
⚫不要被本说明的长度吓到。它之所以长达20多页,是因为在每个游戏对象的细
节说明里,我们有意做了很多不必要的文字重复。我们希望你能够从这些重复的内容
里提取出共同点与区分点,通过自己的构思与设计来解决继承结构等问题,而不是被
我们用我们设计的结构束缚住。
⚫本文档只是样例实现的介绍,你不必全部实现,也不必完全遵循其中要求。你的
目标是做出「你自己」的游戏,而不是「与样例一致」的游戏。本文档只提供作为参
考的大量的实现流程与数值等细节。
⚫如果对任何部分有疑问,在你提问之前,请先在本说明和FAQ中寻找答案,或试
着游玩样例游戏并观察样例游戏的处理方式。
⚫请尽量在Piazza上公开提问而非私下询问TA。有相同疑问的其他同学也可以看
到你的问题,你也能看到我们对更多问题的回答。这会更高效地解决你的疑问。
⚫请一定经常保存备份(无论离线或在线)!如果你为了添加某一点功能使得整个程
序崩溃或是在修复时越修越糟,简单地回退一版并比较不同,就可以快速解决问题。
◆好的,所以这么多东西我怎么写?3
◆GameWorld3
◆背景(Background)5
◆阳光(Sun)5
◆种植位(PlantingSpot)6
◆向日葵种子(SunflowerSeed)7
◆向日葵(Sunflower)7
◆冷却遮盖物(CooldownMask)8
◆豌豆射手种子(PeashooterSeed)8
◆豌豆射手(Peashooter)9
◆豌豆(Pea)9
◆坚果墙种子(WallnutSeed)10
◆坚果墙(Wallnut)10
◆樱桃炸弹种子(CherryBombSeed)11
◆樱桃炸弹(CherryBomb)11
◆爆炸(Explosion)12
◆双发射手种子(RepeaterSeed)12
◆双发射手(Repeater)13
◆铲子(Shovel)13
◆普通僵尸(RegularZombie)14
◆铁桶僵尸(BucketHeadZombie)14
◆撑杆跳僵尸(PoleVaultingZombie)15
◆附录-碰撞处理17
◆好的,所以这么多东西我怎么写?
可想而知,从零开始写出一个完整的游戏绝不是能一蹴而就的小工程。本游戏的大量内容需
要逐步完成。因此,我们将推荐先实现的部分以蓝色字体标出。我们建议你先阅读完整的题目说
明,对这个游戏基本了解,之后再开工。写码时建议从蓝色字体部分开始逐步进行。附件“建议
的开始流程.pdf”提供了一个清晰的前几步流程,相信你完成这几步之后就会驾轻就熟。
在在提供的文件之中,你不需要也不应当修改src/Framework路径下的文件。对于
utils.hpp,在图片素材加载错误时你可能需要修改其中ASSET_DIR字符串,并且你可以在其
中定义新的项目来添加属于你自己的“杂交”内容(详见FAQ:怎么添加新内容)。
下面是对游戏中每个组成部分的介绍。其中以符号开头的列表项是无关顺序的,数字或字母
开头的列表项表示需要按顺序执行。为了简化大家调试参数的部分,我们对于游戏机制还有贴图
坐标等等数据都在具体对象中给出,参考具体数值你将会得到一个不错的画面效果。
但请注意,本文章也并不是样例游戏的C++代码翻译为中文而已,只是给你提供实现游戏的
思路,当你有了要实现的功能之后,仍然还有许多问题需要给你来思考,例如:
有很多不同种类植物、僵尸、种子,对于不同植物,它们有哪些相同,哪些不同?能否通过
设定出一个基类使得接下来的都继承自同一基类?
铲子铲除植物……点击种子种植植物……这些动作的完成需要依赖于上一次点击的状态,如
何让程序记住这些状态该怎么实现?当然有很多种实现方式,尝试“隐形的兔子”也是一种选择。
◆GameWorld
◆GameWorld::Init()
你的GameWorld::Init()函数应当:
⚫初始化任何用于记录关卡数据的成员变量。例如,
您可能关注的文档
- 2022年《建设工程监理案例分析》(水利)临考抢分卷.pdf
- 123卷操作题及答案.docx
- 第十届全国大学生化学实验邀请赛试题理论笔试试题.pdf
- 2014运动会次序册.pdf
- 2022年《建设工程监理案例分析》(土建)临考抢分卷.pdf
- 2.九年级数学下册期中检测题(HK).doc
- 第十六届CMC决赛试题及答案解析(数学类高年级组).pdf
- 3.九年级数学下册第25章检测题(HK).doc
- 3.九年级数学下册第25章质量评价(HK).doc
- 5.九年级数学下册期末质量评价(HK).doc
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
原创力文档


文档评论(0)