java编写的贪吃蛇游戏源码.docVIP

  • 15
  • 0
  • 约1.31万字
  • 约 16页
  • 2016-11-25 发布于浙江
  • 举报
java编写的贪吃蛇游戏源码

函数程序结构图 二、题目分析 通过分析该程序基本需要以下几个类:Text(Main方法)、Snake(蛇)、Food(食物)、Yard(窗口)、Map(地图)、Node(节点)、PaintThread(线程)、Dir(方向)、KeyMonitor(键盘监听)。主要实现蛇运动的基本操作和一些事件反应、游戏分数的记录、暂停、重新开始、更改蛇蛇颜色,蛇的移动速度,地图、死亡模式的改变等功能。 本程序运用Java语言知识,用面向对象的思维设计“贪吃蛇”游戏。 结果分析 运行程序出现游戏界面,蛇(Snake)头自动向前移动,用键盘的上(Up)下(Down)左(Left)右(Right)键控制蛇头的移动方向。游戏窗体中在随机位置出现紫色的食物(Food)。 1、每吃一个加5分 2、默认撞墙不死 3、默认速度3 4、默认地图1 5、默认普通蛇身 6、默认30分提升一个速度档次 7、默认每个速度都走完后更换地图并且速度恢复默认,积分归零 功能键: 1、按F1重新开始 2、按空格键暂停/继续 3、按1/2/3/4/5数字键设置蛇的移动速度(逐渐变快) 4、按F2更换地图(3种) 5、按F3普通蛇/彩蛇的切换 6、按F4更换游戏模式(蛇撞到最外围为死亡还是从另一端返回) 该程序初步完成了“贪吃蛇”的游戏雏形,但是缺乏完善。比如:界面效果十分粗糙、屏幕闪烁、缺少声音等。但是,我们通过编写贪吃蛇,能更好的运用面向对象的思维方式了,并学到了许多有用的经验。 附录(程序清单) Snake.java import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; public class Snake { Node head = null; Node tail = null; int size = 0; Yard y; Node n = new Node(1, 2, Dir.D); public Snake(Yard y) { head = n; tail = n; size = 1; this.y = y; for(int i=0;i3;i++) this.Headadd(); } public void Tailadd() { Node node = null; switch (tail.dir) { case L : node = new Node(tail.m+1, tail.n, tail.dir); break; case U : node = new Node(tail.m, tail.n+1, tail.dir); break; case R : node = new Node(tail.m-1, tail.n, tail.dir); break; case D : node = new Node(tail.m, tail.n+1, tail.dir); break; } tail.next = node; node.pre = tail; tail = node; size ++; } public void Deltail() { if (size == 0) return; tail = tail.pre; tail.next = null; } public void Headadd() { Node node = null; switch (head.dir) { case L: node = new Node(head.m - 1, head.n, head.dir); break; case U: node = new Node(head.m, head.n - 1, head.dir); break; case R: node = new Node(head.m + 1, head.n, head.dir); break; case D: node = new Node(head.m, head.n + 1, head.dir); break; } node.next = head; head.pre = node; head = node; size++; } public void draw(Gr

文档评论(0)

1亿VIP精品文档

相关文档