Java实战项目二(超详细) |
您所在的位置:网站首页 › 小恐龙像素画图片 › Java实战项目二(超详细) |
奔跑吧小恐龙是一款简单的跑酷游戏(代码简单,适合初学者学习)。玩家控制小恐龙向前狂奔,躲避沿途出现的石头和仙人掌,跑的越远,分数越高。游戏内还增加了背景音乐、跳跃音乐和碰撞音乐。 本文的代码虽然长,但不难理解,希望大家能够耐心看完。 文中代码均可直接运行,完整代码请见github (如果觉得有帮助,记得给个star,谢谢!) 文章目录 系统结构设计游戏功能架构图项目目录结构预览 游戏模型设计恐龙类障碍类 音效模块设计音频播放器 系统结构设计 游戏功能架构图 项目目录结构预览 游戏模型设计 恐龙类1.定义 Dinosaur类的成员属性绝大多数都是私有属性,只有少数公有属性用于游戏面板绘图使用。Dinosaur类的私有属性包含3张来回切换的跑步照片: Dinosaur类的定义如下: public class Dinosaur { public BufferedImage image;// 主图片 private BufferedImage image1, image2, image3;// 跑步图片 public int x, y;// 坐标 private int jumpValue = 0;// 跳跃的增变量 private boolean jumpState = false;// 跳跃状态 private int stepTimer = 0;// 踏步计时器 private final int JUMP_HIGHT = 100;// 跳起最大高度 private final int LOWEST_Y = 120;// 落地最低坐标 private final int FREASH = FreshThread.FREASH;// 刷新时间--刷新帧线程 }在Dinosaur类的构造方法中将恐龙的横坐标固定在50像素的位置,纵坐标采用落地时的坐标,具体代码如下: public Dinosaur() { x = 50; // 恐龙的横坐标 y = LOWEST_Y; // 恐龙的纵坐标 try { image1 = ImageIO.read(new File("image/恐龙1.png")); // 读取恐龙的图片 image2 = ImageIO.read(new File("image/恐龙2.png")); image3 = ImageIO.read(new File("image/恐龙3.png")); } catch (IOException e) { e.printStackTrace(); } }2.踏步 游戏中恐龙的横坐标虽然一直没变,但背景的运动会造成恐龙向前移动的假象。Step()方法就是踏步动作的方法,具体代码如下: /** * 踏步 */ private void step() { // 每过250毫秒,更换一张图片。因为共有3图片,所以除以3取余,轮流展示这三张 int tmp = stepTimer / 250 % 3; // 0、1、2 switch (tmp) { case 1 : image = image1; break; case 2 : image = image2; break; default : image = image3; } stepTimer += FREASH;// 计时器递增 }3.跳跃 跳跃是小恐龙躲避障碍的动作,也是玩家可以控制恐龙做出的唯一动作。 具体代码如下: /** * 跳跃 */ public void jump() { if (!jumpState) {// 如果没处于跳跃状态 Sound.jump();// 播放跳跃音效 } jumpState = true;// 处于跳跃状态 }4.移动 move()是恐龙移动方法,move()方法不断地调用step()踏步方法 stepTimer踏步计时器会有效控制图片地切换频率 move()方法地具体代码如下: /** * 移动 */ public void move() { step();// 不断踏步 if (jumpState) {// 如果正在跳跃 if (y == LOWEST_Y) {// 如果纵坐标大于等于最低点---(越往上坐标越小) jumpValue = -4;// 增变量为负值--向上跳 } if (y |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |