查看: 749|回复: 0

一些小型的游戏服务端架构,今日来分析下贪吃蛇这款游戏

[复制链接]

4783

主题

5079

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
18913

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2020-3-28 16:09:55 | 显示全部楼层 |阅读模式
一些小型的游戏服务端架构,今日来分析下贪吃蛇这款游戏 https://www.gmbbs.net/


大家好,我是一个四眼长腿的爸爸,专注于机器人教育(乐高EV3,阿尔杜诺),儿童初级游戏服务端编程教育(Scratch,Python)!喜欢我的作品,请点击右上角的“注意”订阅我的头条号码!谢谢你!
在前两节课中,我们共同分析并编写了《迷宫》和《飞机大战》游戏服务端(参见文章《手把手教你乐高机器人游戏服务端编程scratch少儿游戏服务端游戏服务端编程》)。我相信每个人都对游戏服务端的思维设计和代码编写有更深的理解。今天我们继续第三堂游戏服务端游戏服务端编程课-《贪吃蛇》。

和往常一样,先看看《贪吃蛇》的游戏服务端界面和运行界面。
游戏服务端界面
游戏服务端运行动画
游戏服务端素材理念分析
游戏服务端材料:
游戏服务端背景(游戏服务端运行界面,游戏服务端结束界面),苹果,贪婪的蛇(蛇头,蛇身),记录分数。
思维分析:
1.游戏服务端开始后,舞台背景切换到游戏服务端运行界面;当蛇头碰到舞台边缘或蛇头碰到蛇身时,游戏服务端结束,舞台背景切换到游戏服务端结束界面。
2.苹果随机出现在游戏服务端界面的任何位置,等待一段时间。如果它没有被贪婪的蛇吃掉,它会自动消失,并出现在下一个随机的位置。这时,贪婪的蛇的蛇身会延长一定的长度,因为它没有吃苹果。如果苹果被一条贪婪的蛇吃掉,苹果会停止等待自动消失,并出现在下一个随机位置。
3.分数是记录玩家通过贪婪的蛇吃掉苹果的数量。每吃一个苹果就得到一分,在每场比赛开始前分数被清空。
4.游戏服务端开始后,贪婪的蛇会自动移动。方向键控制蛇头的方向。蛇的身体随着蛇头的方向移动。蛇头每吃一个苹果,分数就会增加1,蛇身就会延长一定的长度。
5.这个游戏服务端的焦点是蛇身体的增加和移动。在这里,我们把贪吃的蛇分为蛇头和蛇身来设计。蛇头通过角度彩色图片设置,蛇身通过绘图功能实现。
6.每次蛇头移动时,通过笔刷在当前位置(xy坐标)用蛇身的颜色绘制蛇身。这样,蛇的身体比原来的多了一块。为了保持蛇身的长度不变,应该在蛇尾的位置(xy坐标)用舞台的背景色再次绘制蛇身,而刚才蛇身的颜色将会用舞台的背景色擦除。这样,蛇的身体就会减少另一截。贪婪的蛇的运动最终变成了运动。蛇头绘制一片蛇身颜色,蛇尾绘制一片舞台背景颜色来覆盖原来的颜色,从而创造出一个动态的动画效果。
7.对于每一个动作,蛇头都必须画。蛇头是否应该做覆盖画取决于蛇身的长度。只有当画后蛇头的长度大于蛇身的固有长度时,它才能进行覆盖画。
8.当蛇头吃苹果时,贪吃蛇的蛇身长度增加1。如果蛇头在规定时间内不吃苹果,苹果会自动消失,蛇身长度增加5。
实现思想的程序化
1.编写游戏服务端界面的游戏服务端脚本
1)默认的白色背景可以直接在游戏服务端的运行界面中使用。
2)通过绘制新的背景来实现游戏服务端的结束界面。
选择绘制新背景创建一个新的游戏服务端结束界面
绘制游戏服务端结束界面
3)游戏服务端开始后,将舞台背景设置为游戏服务端运行界面(背景1)。
设置游戏服务端的初始脚本
2.编写苹果角色游戏服务端的脚本
1)默认加载的小猫角色不用于此游戏服务端。在角色库中选择小猫,右键单击并单击删除。
2)游戏服务端中的苹果是从角色库(角色库-分类-全部-)“苹果”中选择的,并缩小到游戏服务端的适当大小。
从角色库中选择一个苹果角色
3)游戏服务端开始后,苹果出现在游戏服务端的随机位置,然后等待一段时间,消失,然后出现在游戏服务端的随机位置。等等,重复。
如前所述,游戏服务端界面的x坐标和Y坐标分别是(-240到240)和(-180到180)。如果苹果从游戏服务端界面的边缘出来,吃苹果的贪婪的蛇会立即触摸到边缘,游戏服务端就结束了,所以随机的位置
当蛇头触摸苹果时,他们也会告诉苹果,他们不需要再等了,这次生产的苹果会消失,然后随机生产一个新的苹果。这里生产的苹果不是直接创造的,而是通过信息的方式生产的。
创建并广播一条新消息:随机生成苹果
接收到随机生成的苹果信息后,随机生成位置并显示位置
苹果随机动画效果
3.写蛇头角色游戏服务端脚本
1)游戏服务端中的蛇头模型我们从本地上传定制图片。(形状不一定相同,请自己下载图片)
上传蛇头造型
2)游戏服务端开始后,蛇头默认为中心点(0,0)。蛇头向左移动,重复自动移动。按方向键将蛇头转到相应的方向。
蛇头自动移动,按方向键移动脚本。
3)每次蛇头移动时,它都会用画笔画蛇的身体。
用画笔画一条蛇
蛇头画蛇身
4)如上所述,蛇头只画蛇身,多余的蛇身需要蛇尾来覆盖。我们需要告诉蛇身的长度和它的位置(399000,Y坐标)来覆盖图纸。这里我们使用scratch的新概念链表来记录每个蛇头图的位置(399000,Y坐标)。
链表相当于一个容器,用来记录多个数据。链表中的第一个数据离蛇头最远,离蛇尾最近,链表中的最后一个数据离蛇头最近,离蛇尾最远。换句话说,每当蛇头添加一个位置时,蛇尾将删除最靠近它的位置,即链表中的第一个数据。
新的可变蛇长度,设置为10
商店x坐标和蛇头每次移动的Y坐标。
4、编写虎头蛇尾的人物游戏服务端脚本
1)游戏服务端中的虎头蛇尾角色只涉及绘画操作,可以随意选择。在这里,从角色库中选择(角色库-分类-所有->)球,并将其缩小到适当的大小。
从角色库中选择一个蛇角色
2)游戏服务端开始后,将画笔的颜色设置为舞台的背景色(白色),画笔的大小略大于用于绘制蛇身颜色的画笔的大小(12),监视蛇头存储的x坐标(或Y坐标)的数量是否大于蛇身的长度,如果大于,则删除存储链表中最靠近蛇尾的位置(链表的第一个数据)。
蛇的尾巴会删除多余的存储数据
吃蛇运动的效果
5、写完美的剧本
1)创建一个新的分数变量,并将舞台上的游戏服务端运行界面设置为0。
新的分数变量
游戏服务端开始时,将分数清零
2)添加新的游戏服务端结束消息。当蛇头触及蛇身或蛇头触及边缘时,播放游戏服务端结束信息,舞台接收信息,并将游戏服务端界面切换到结束界面。
判断蛇头是否接触到蛇身或边缘
将游戏服务端界面切换到结束界面
3)如果苹果显示蛇头未被触摸,它将自动消失,并将蛇身长度增加5。
蛇头没有接触苹果,蛇身的长度增加了5
4)当蛇头遇到苹果时,蛇身的长度增加1,分数增加1,播放吃东西的声音苹果,蛇头发送一条信息告诉苹果这次苹果可以消失,可以创建一个新的苹果。
蛇头遭遇剧本苹果
苹果收到消息并重新生成新的苹果
至此,食蛇者的思维分析和游戏服务端编程已经完成。让我们试试吧!
游戏服务端游戏服务端编程系列课程中的所有单词和图片都是四眼长腿爸爸原创。转载联系人的作者:阿列克方。未经许可,不得转载。违者将被起诉!

【GM论坛[www.gmbbs.net]免责声明】
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
4、论坛的所有内容都不保证其准确性,完整性,有效性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请告之,本站将立即删除。
   提问发帖求助请点此发帖 https://www.gmbbs.net/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表