JAVA-贪吃蛇简易设计.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA 贪吃蛇简易设计(代码注释)贪吃蛇的核心算法时如何实现移动和吃掉食物,没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色绘制这个节点,然后把头指针所指的节点出队,并以游戏框架内部背景色重绘出队的节点,这样就可以达到移动的效果。而在吃到食物的时候,则只需把食物入队即可。实现贪吃蛇的基本的蛇身移动、吃到食物身体增长、和碰到墙壁或自身死亡,能够暂停和开始。 游戏分为两个模块:分为: 游戏主界面模块、游戏控制模块; 游戏主界面模块要求简洁,美观,不影响使用; 游戏控制模块要求能完成游戏开始,退出、重新开始等功能; 在蛇的运行线程过程中,当蛇撞到墙或自己的身体时,将抛出一Exception类的异常对象,然后使用try-catch去捕捉这个异常。异常的处理如下:try{ Thread.sleep(timeInterval); } catch(Exception e){ break; } KeyEvent对象描述事件的特性(按下,放开,或者敲击一个键)和对应的值。java提供KeyListener接口处理按键事件。 当按下一个键时会调用KeyPressed处理器,当松开一个键时会调用KeyReleased处理器,当输入一个统一编码时会调用KeyTyped处理器。如果这个键不是统一码(如功能键,修改键,动作键和控制键) 每个按键事件有一个相关的按键字符和按键代码,分别由KeyEvent中的getKeyChar()和getKeyCode()方法返回 getKeyChar(): char返回这个事件中和键相关的字符 getKeyCode(): int 返回这个事件中和键相关的整数键keyPressed(e: KeyEvent)在源组件上按下一个键后被调用KeyReleased(e: KeyEvent)在源组件上释放一个键后被调用KeyTyped(e: KeyEvent)在源组件上按下一个键然后释放该键后被调用按键常量VK_HOME Home键 VK_CONTROL控制键VK_END End键 VK_SHIFT shift键VK_PGUP page up键 VK_BACK_SPACE退格键VK_PGDN page down键 VK_CAPS_LOCK大小写锁定键VK_UP上箭头 VK_NUM_LOCK小键盘锁定键VK_DOWN下箭头 VK_ENTER回车键VK_LEFT左箭头 VK_UNDEFINED未知键VK_RIGHT右箭头 VK_F1--VK_F12 F1 -- F12VK_ESCAPE Esc键 VK_0 --VK_9 0 9VK_TAB Tab键 VK_A --VK_Z AZ代码:import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class Snack extends KeyAdapter//键盘监听接口{ JFrame mainFrame; //定义窗体 Canvas paintCanvas; //继承自java.awt 定义一个画布 JLabel labelScore; //定义标签 SnakeModel snakeModel=null; // public static final int WIDTH=980; //定义了一个值 , 在后面用到,此为画布的长 public static final int HEIGHT=460; //定义了一个值 , 在后面用到,此为画布的宽 public static final int nodeWidth=20; //定义了一个值 , 在后面用到,此为节点(蛇的一个单元,食物)的的长 public static final int nodeHeight=20; //定义了一个值 , 在后面用到,此为节点(蛇的一个单元,食物)的的宽 public Snack()//构造方法 对成员变量初始化 { mainFrame=new JFrame(贪吃蛇游戏); Container cp=mainFrame.getContentPane(); //定义顶级容器 将 界面需要的东西放入窗体 labelScore=new JLabel(您的所得分数为:,JLabel.CENTER); //以下依次创建了标签,画布,面板 使用边界布局 cp.add(labelScore,Bord

文档评论(0)

js1180 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档