2.样例游戏参考文档.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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()函数应当:

⚫初始化任何用于记录关卡数据的成员变量。例如,

文档评论(0)

147****3722 + 关注
实名认证
文档贡献者

四级网络工程师持证人

该用户很懒,什么也没介绍

版权声明书
用户编号:8020025053000005
领域认证该用户于2023年09月02日上传了四级网络工程师

1亿VIP精品文档

相关文档