版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java贪吃蛇,设计,涉及到的类 个各类所涉及到的方法,GamePanel类,GamePanel 类 void display();/ 显示,Snake类,void move(); / 移动(走一步) void changeDirection(); / 改变方向 void eatFood(); / 吃食物(身体变长) boolean isEatBody();/ 蛇是否吃到了自己的身体 void drawMe(); / 显示 自己定时移动,Food类,boolean isSnakeEatFood(Snake);/ 判断蛇是否吃到了食物 void drawMe();/ 显示,Ground类,boo
2、lean isSnakeEatRock(Snake);/ 蛇是否吃到石头 void drawMe();/ 显示,各个类之间的关系,Ground,Food,Snake定时移动,controller,处理按键事件,处理逻辑事件,Controller,Game panel 重新显示,Controller,通过事件监听建立联系,Snake 定时移动,MainFrame,移动后, 触发事件,snakeMoved,SnakeListener,处理按键事件,状态改变 需要重新显示,触发按键事件,重新显示,事件源,事件源,SnakeListener,void snakeMoved(Snake);,总的包与类,
3、为了方便查看定义不同的包 game包括GameOptionPanel,MainFrame类 Controller包括controller类 Entities包括food ground snake类 Listeners包括GameListener,SnakeListener接口 Util包括global类 View包括GamePanel类,怎么表示蛇, 食物, 石头,可以把显示区域想象成一个大大表格, 其中的一个格子可以代表一个食物或一块石头, 几个连在一起的格子就代表一条蛇 怎么区分格子呢(怎么表示这个格子呢)? 用坐标,每个格子有它自己的坐标,左上角的那个格子的坐标是 (0,0),怎么表示蛇
4、, 食物, 石头,y 坐 标,x 坐标,蛇怎么移动,蛇向前移动一步,可以看作是蛇头前面增加了一个节点,蛇的尾巴上少了一个节点 (即去尾,加头),移动前,原来的第二节,原来的蛇头,移动后,用什么数据结构存放蛇的身体节点,分析: 要区分蛇头和蛇尾巴,这就要求这个数据结构是有序的,还要(经常的)访问第一个和最后一个节点, 所以 LinkedList 最合适,因为它有 getFirst() , getLast()方法 和 removeLast() 方法,蛇的移动方向,蛇下一步移动到哪儿, 是由方向来控制的。 用什么表示方向呢? 在这里我们用 int 型的常量表示,根据原蛇头和方向计算新蛇头的坐标,y
5、坐 标,x 坐标,向上移动 y 坐标减 1 向左移动 x 坐标减 1 向下移动 y 坐标加 1 向右移动 x 坐标加 1,格子的宽度和高度,像素坐标 (x, y),矩形(格子)的高度 CELL_HEIGHT,矩形(格子)的宽度 CELL_WIDTH,格子坐标和像素坐标,这个点的像素坐标为 x 坐标: 格子的宽度 * left y 坐标: 格子的高度 * top,top = 1,left = 2,left 是这个格子距左边界的距离 top 是这个格子距上边界的距离,关于方向, 有两个要注意地方 1. 相反方向 2. 无效方向,什么是相反方向 和上一次移动的方向相反的方向即为相反方向 如果输入的是相反方向则应该忽略 (判断相反方向时应该注意方向的有效性),在蛇的这一次移动之后和下一次移动之前这个时间间隔内输入了多个方向, 只有最后一个是有效方向, 其余的都为无效方向,无效方向,蛇移动一次的时间间隔之内,无效方向 相反方向,无效方向,蛇移动后可能出现的三种情况,1. 吃到食物 2.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《高速电气化铁路接触网》课件2.2.4腕臂
- 《职业规划能力提升与就业指导》第一章
- 甲基硅氧烷生产工工作标准化能力考核试卷含答案
- 絮锦加工工岗位安全意识考核试卷含答案
- 景区运营管理师交接知识考核试卷含答案
- 2025年执业医师考试综合考试真题卷附答案完整版
- 2025年职业健康考试答题试卷及解析答案
- 2025年中储粮储运有限公司公开招聘笔试参考题库附带答案详解
- 2025年中级审计师《审计理论与实务》真题还原模拟考试题库(含解析)
- 2025年重庆市公开遴选公务员笔试题及答案解析
- 【苏泊尔电器营运资金管理问题及完善分析13000字 (论文)】
- 非遗文化格萨尔文学
- 2022年浙江省宁波市慈溪实验中学高一数学文联考试卷含解析
- 电缆配电线路的运行与维护-电缆敷设
- 武汉市初中学生综合素质评价内容及标准
- 天然气监理规划
- 病理学课件:肿瘤-实验课
- 食品安全管理师理论考试题库及答案
- IS-LM模型-教学讲解课件
- GB/T 8152.2-2006铅精矿化学分析方法铅量的测定硫酸铅沉淀-EDTA返滴定法
- GB/T 20720.3-2022企业控制系统集成第3部分:制造运行管理的活动模型
评论
0/150
提交评论