Java实战项目二(超详细)

您所在的位置:网站首页 小恐龙像素画图片 Java实战项目二(超详细)

Java实战项目二(超详细)

2024-06-02 16:37| 来源: 网络整理| 查看: 265

界面图 奔跑吧小恐龙是一款简单的跑酷游戏(代码简单,适合初学者学习)。玩家控制小恐龙向前狂奔,躲避沿途出现的石头和仙人掌,跑的越远,分数越高。游戏内还增加了背景音乐、跳跃音乐和碰撞音乐。 本文的代码虽然长,但不难理解,希望大家能够耐心看完。 文中代码均可直接运行,完整代码请见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