- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
21_贪食蛇游戏
21 贪食蛇游戏 程序设计基础 本节目标 本节课即将学习 贪食蛇游戏实现原理 MVC 设计模式 贪食蛇游戏 16-1 游戏规则 方向键控制黑色小蛇前进 碰到四周的墙壁、自己的身体游戏结束 只能前进、左转、右转,向回走会碰到自己,立即 “死亡” 蛇头经过红色的食物,会吃掉食物;每次吃掉食物,得一分,蛇的长度会增加一节 贪食蛇游戏 16-2 游戏原理 Snake角色,是黑色的一个小方块,代表蛇身体的一节,蛇身是由多节组成的;通过Snake角色的“图章”功能来绘制蛇身 Eraser 角色,是白色的一个小方块,大小和Snake角色相同;其颜色和背景色相同,利用Eraser 角色的“图章”功能可擦除蛇身 food角色,是红色的一个小方块,代表食物,大小和Snake角色相同 贪食蛇游戏 16-3 Snake 角色代码 蛇是本游戏的主角,其实现方式是游戏设计的核心 其设计可分为模型和视图两部分 模型负责蛇的内部数据表示 视图负责蛇的界面显示 贪食蛇游戏 16-4 Snake 角色代码 蛇的模型 蛇身由多节组成,每节在屏幕上都有一个坐标(x,y) 用链表 listX, listY 代表蛇身体每节的坐标位置, listX 存放横坐标x, listY 存放纵坐标y,两个链表长度相等 如果蛇身长4节,则listX, listY 的长度都是4 蛇身长度增加一节,通过在listX, listY 中各增加一个数据来实现 蛇身前进一步:根据前进方向,确定蛇头要进入的位置的坐标,假如是(x1,y1),那么将x1插入到listX的第一项,将y1插入到listY的第一项,然后删除listX, listY 的最后一项就可以了 贪食蛇游戏 16-5 Snake 角色代码 蛇的视图 通过将 snake 角色移到链表listX, listY中每个元素对应的位置绘制图章,就可以逐节绘制蛇身 右边代码就完成上述功能 贪食蛇游戏 16-6 Snake 角色代码 为了提高效率,并不需要每次都要绘制整个蛇身 程序开始时绘制完整的蛇身 以后每次前进,只有蛇头和蛇尾发生变化,因此只要绘制新的蛇头,擦除原来的蛇尾就可以了 右边代码实现绘制蛇头,变量 headX和headY代表蛇头的横坐标和纵坐标 贪食蛇游戏 16-7 eraser角色代码,实现擦除蛇尾 程序开始时,角色隐藏 链表 listX, listY代表蛇身体每节的坐标位置 收到“清除尾格”消息后,将链表 listX, listY最后元素取出,得到蛇尾即蛇身体最后一节的坐标,将角色移动到蛇尾位置,利用图章功能,将蛇尾一节绘制为背景色,实现视图中蛇尾被擦除一节的效果。删除链表 listX, listY最后元素,从模型中删除蛇尾 变量i是局部变量,可以避免使用全局变量可能导致的和其他角色脚本的冲突 贪食蛇游戏 16-8 Snake 角色代码 变量 direct 代表蛇前进的方向:0-向上;1-向右;2-向下;3-向左 右边代码实现通过上下左右方向键来改变蛇前进的方向 贪食蛇游戏 16-9 Snake 角色代码 主控程序 1、绘制游戏区域边框 2、得分清0,建立snake链表模型listX,listY, 绘制蛇完整身体 3、将游戏开始标志变量running设置为1 贪食蛇游戏 16-10 Snake 角色代码 主控程序 4、重复执行,进入游戏 1)前进一步,根据前进方向修改蛇头坐标headX,headY,如果蛇头碰到边框或蛇身,将变量running设为0 2)如果running为0显示游戏结束,程序停止 3)否则,将新的蛇头坐标插入链表listX, listY第一项 贪食蛇游戏 16-11 Snake 角色代码 主控程序 4、重复执行,进入游戏 4)绘制蛇头 5)如果蛇头和食物位置相同,广播吃掉食物消息,使食物food角色改变到新位置出现。这样因为蛇头增长,蛇身变长一节 6)否则,广播清除尾格消息,擦除蛇尾,抵消蛇头增长的一节,使蛇身长度不变,但前进一步 贪食蛇游戏 16-12 Snake 角色代码 绘制边框消息处理程序 绘制边长为60的绿色正方形,正方形中心在(0,0) 贪食蛇游戏 16-13 Snake 角色代码 游戏准备消息处理程序 得分清0 链表 listX,listY 清空 方向向上 插入10个坐标到listX,listY,代表初始长度为10节的蛇身,(0,9) (0,8) (0,7)…(0,0) 绘制完整蛇身 贪食蛇游戏 16-14 Snake 角色代码 前进一步消息处理程序 1)根据前进方向修改蛇头坐标 2)如果蛇头碰到边框,即坐标绝对值等于30,将变量running设为0,代表游戏结束 贪食蛇游戏 16-15 Snake 角色代码 前进一步消息处理程序 3)检查蛇头位置是否与某一节蛇身位置重合,如果是,则将变量r
您可能关注的文档
- 2017希仕之夜·领秀臻荣4.21主题奢华酒会活动策划案.ppt.ppt
- 2017年A股投资策略:否极泰来:经济企稳、盈利反转-2017-12-24.ppt
- 2017年8月消防安全培训冷色风格 ppt课件.ppt
- 2017年Pentawards国际包装设计奖获奖作品 (NXPowerLite).ppt.ppt
- 2017年中考历史二轮复习热点专题:弘扬优秀传统文化,评析古人家国情怀.pptx
- 2017年8月萍乡房地产市场报告92p.ppt.ppt
- 2017年东湖品臻极品之夜暨逸涛集团年会及客户答谢晚宴活动策划方案.ppt.ppt
- 2017年地产项目商业模式分析(亿利金威建设集团)(30页) .ppt.ppt
- 2017年天河城春夏季公关推广活动策划2.ppt.ppt
- 2017年度欧诗漫品牌传播策略及广告.ppt.ppt
文档评论(0)