版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java贪吃蛇,1,2020/8/3,设计,涉及到的类 个各类所涉及到的方法,2,2020/8/3,GamePanel类,GamePanel 类 void display();/ 显示,3,2020/8/3,Snake类,void move(); / 移动(走一步) void changeDirection(); / 改变方向 void eatFood(); / 吃食物(身体变长) boolean isEatBody();/ 蛇是否吃到了自己的身体 void drawMe(); / 显示 自己定时移动,4,2020/8/3,Food类,boolean isSnakeEatFood(Snake)
2、;/ 判断蛇是否吃到了食物 void drawMe();/ 显示,5,2020/8/3,Ground类,boolean isSnakeEatRock(Snake);/ 蛇是否吃到石头 void drawMe();/ 显示,6,2020/8/3,各个类之间的关系,Ground,Food,Snake定时移动,controller,处理按键事件,处理逻辑事件,Controller,Game panel 重新显示,7,2020/8/3,Controller,通过事件监听建立联系,Snake 定时移动,MainFrame,移动后, 触发事件,snakeMoved,SnakeListener,处理按键事件
3、,状态改变 需要重新显示,触发按键事件,重新显示,事件源,事件源,8,2020/8/3,SnakeListener,void snakeMoved(Snake);,9,2020/8/3,总的包与类,为了方便查看定义不同的包 game包括GameOptionPanel,MainFrame类 Controller包括controller类 Entities包括food ground snake类 Listeners包括GameListener,SnakeListener接口 Util包括global类 View包括GamePanel类,10,2020/8/3,怎么表示蛇, 食物, 石头,可以把显示
4、区域想象成一个大大表格, 其中的一个格子可以代表一个食物或一块石头, 几个连在一起的格子就代表一条蛇 怎么区分格子呢(怎么表示这个格子呢)? 用坐标,每个格子有它自己的坐标,左上角的那个格子的坐标是 (0,0),11,2020/8/3,怎么表示蛇, 食物, 石头,y 坐 标,x 坐标,12,北京传智播客教育 ,蛇怎么移动,蛇向前移动一步,可以看作是蛇头前面增加了一个节点,蛇的尾巴上少了一个节点 (即去尾,加头),移动前,原来的第二节,原来的蛇头,移动后,13,2020/8/3,用什么数据结构存放蛇的身体节点,分析: 要区分蛇头和蛇尾巴,这就要求这个数据结构是有序的,还要(经常的)访问第一个和最
5、后一个节点, 所以 LinkedList 最合适,因为它有 getFirst() , getLast()方法 和 removeLast() 方法,14,2020/8/3,蛇的移动方向,蛇下一步移动到哪儿, 是由方向来控制的。 用什么表示方向呢? 在这里我们用 int 型的常量表示,15,2020/8/3,根据原蛇头和方向计算新蛇头的坐标,y 坐 标,x 坐标,向上移动 y 坐标减 1 向左移动 x 坐标减 1 向下移动 y 坐标加 1 向右移动 x 坐标加 1,16,2020/8/3,格子的宽度和高度,像素坐标 (x, y),矩形(格子)的高度 CELL_HEIGHT,矩形(格子)的宽度 CE
6、LL_WIDTH,17,2020/8/3,格子坐标和像素坐标,这个点的像素坐标为 x 坐标: 格子的宽度 * left y 坐标: 格子的高度 * top,top = 1,left = 2,left 是这个格子距左边界的距离 top 是这个格子距上边界的距离,18,北京传智播客教育 ,关于方向, 有两个要注意地方 1. 相反方向 2. 无效方向,19,2020/8/3,什么是相反方向 和上一次移动的方向相反的方向即为相反方向 如果输入的是相反方向则应该忽略 (判断相反方向时应该注意方向的有效性),20,2020/8/3,在蛇的这一次移动之后和下一次移动之前这个时间间隔内输入了多个方向, 只有最后一个是有效方向, 其余的都为无效方向,21,2020/8/3,无效方向,蛇移动一次的时间间隔之内,无效方向 相反方向,无效方向,22,2020/8/3,蛇移动后可能出现的三种情况,1. 吃到食物 2. 吃到石头 3. 吃
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年财政学陈共考试重点全归纳
- 2023年公司安全生产管理协议5篇
- 人教版九年级语文第六单元《诗词曲五首》教案
- 2023年电大开放英语专科考试小抄
- 110kv继电保护专业课程设计
- 2026年宠物训练中心宠物香波供应合同协议
- 注册工程师复习考试题库大全答案下载
- 2023年教师资格之中学体育学科知识与教学能力能力测试试卷B卷附答案
- 荣盛发展:纺织街(规划路)东一宗其他商服用地国有建设用地使 用权市场价格评估报告
- 职业健康培训教材
- 2026宁夏中卫工业园区管理委员会招聘安全监管人员6人备考题库附答案详解(完整版)
- 2026北京昌平区事业单位考试真题
- 2026北京海淀高三一模语文(含答案)
- 【招考】2025年下半年北京海淀区事业单位公开招聘笔试历年典型考题及考点剖析附带答案详解
- 2026年项目式学习(PBL)设计指南:从理论到实践的系统路径
- 清华大学:全国数智产业发展研究报告(2024-2025)
- 2026年高考作文备考之13道思辨哲理类作文题(含审题立意+范文指导)
- 2024年辽宁省考面试历年真题及答案解析
- 党建试题库及答案
- 2026湖北恩施州消防救援局政府专职消防员招聘38人考试参考题库及答案解析
- 2026广东东莞市常平镇编外聘用人员招聘5人笔试参考试题及答案解析
评论
0/150
提交评论