Advertisement

JAVA飞机大战的源代码。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
package cn.feike.shoot; import java.awt.Graphics; import java.awt.image.BufferedImage; public abstract class FlyingObject { protected double x; // 物体的x坐标 protected double y; // 物体的y坐标 protected double width; // 物体的宽 protected double heigth; // 物体的高 protected BufferedImage image; // 当前正在显示的图片 protected int index = 0; // 图片数组下标序号,子类中使用 protected double step; // 飞行物每次(1/24秒)移动的距离 protected int life; // 生命值 protected int state; // 飞行物的状态 public static final int ACTIVE = 0; // 活着状态 public static final int DEAD = 1; // 死亡状态 public static final int REMOVE = 2; // 回收状态 // 默认构造器 public FlyingObject() { this.life = 1; this.state = ACTIVE; } // 有参构造器 public FlyingObject(double width, double heigth) { this(); // 调用无参数的构造器,必须写在第一行。 this.x = (int) (Math.random() * (480 - width)); this.y = -heigth; this.width = width; this.heigth = heigth; step = Math.random() * 3 + 0.8; // 初始化step为[0.8,3.8)之间的数。 } // 重写toString方法,用于调试输出。方便子类对象的使用。返回物体的位置和尺寸信息。使用逗号分隔。 返回x,y,宽度,高度,当前图像。 public String toString() { return x + , + y + , + width + , + heigth + , + image ; } // 重写paint方法,方便子类对象的使用。绘制图片到画布上。绘制指定图片到指定位置(x,y)。 public void paint(Graphics g) { g.drawImage(image, (int) x, (int) y, null); } /** * 飞行物移动的move方法,重构了实现播放销毁动画功能。如果状态为ACTIVE,则更新y坐标并返回;如果状态为DEAD,则从子类对象中获取下一张照片引用,如果引用为空则设置为REMOVE状态;否则将子类的图片传给image属性;如果y坐标越界则销毁 */ public void move() { if (state == ACTIVE) { y += step; return ; } if (state == DEAD) { BufferedImage img = nextImage(); if (img == null) { state = REMOVE;// 没有照片则回收 } else { image = img;//否则把子类的图片传给image } //越界则销毁 if (y >= 825) { state = REMOVE;} } } /** * 子类中必须有的方法,返回下一个要播放的照片引用,* 如果返回null表示没有可播放的照片了。 */ protected abstract BufferedImage nextImage(); /** * 飞行物被打了一下 */ public void hit() { if (life > 0) { life--; } if (life == 0) { state = DEAD;} } /** * 碰撞检测的方法 * 检测物体的位置是否在碰撞的范围内.* (子弹是否在飞行物的碰撞范围内) */ public boolean duang(FlyingObject obj){ // this(x,y,w,h)//obj(x,y,w,h) double x1 = this.x - obj.width;//左边界计算 double x2 = this.x + this.width;//右边界计算 double y1 = this.y - obj.width;//上边界计算 double y2 = this.y + this.heigth;//下边界计算 return x1 < obj .x && obj .x < x2 && y1 < obj .y && obj .y < y2 ;} /** 重构FlyingObject,添加了状态检查方法 */ /** * 检查飞行物死了吗 */ public boolean isDead() { return state == DEAD;} /** * 检查飞行物是否活动的 */ public boolean isActive() { return state == ACTIVE;} /** * 检查飞行物是否可以被删除*/ public boolean canRemove(){ return state == REMOVE;} /** * 飞行物添加去死方法*/ public void goDead(){ if(isActive()){ state=DEAD;} } }

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Java
    优质
    本作品为基于Java语言开发的经典射击游戏飞机大战的完整源代码,包含游戏设计、编程技巧及面向对象程序设计的应用示例。 分享连连看的Java源代码以及用纯JAVA制作的飞机大战游戏源代码下载链接,并附带所需图片资源,供大家分享使用。
  • Java
    优质
    《Java版飞机大战》是一款使用Java语言编写的经典射击游戏《飞机大战》的源代码,适合编程爱好者学习和研究。 经典飞机大战源代码采用Java编写,在Eclipse环境中可以完美运行,并且已经亲测可用。
  • 简易雷霆Java
    优质
    这段Java源代码实现了简易飞机大战的雷霆战机游戏的基本功能,让玩家可以在控制台上体验经典飞行射击游戏的乐趣。 自己制作了一个简易的雷霆战机代看程序,代码量少且简单易懂。
  • Java
    优质
    《Java版飞机大战源码》是一款使用Java语言编写的经典飞行射击游戏代码,适合编程爱好者学习和研究。通过这款游戏源码的学习,玩家可以深入了解游戏开发的基本原理和技术实现方法。 package cn.feike.shoot; import java.awt.Graphics; import java.awt.image.BufferedImage; public abstract class FlyingObject { protected double x; // 物体的x坐标 protected double y; // 物体的y坐标 protected double width; // 物体的宽 protected double heigth; // 物体的高度 protected BufferedImage image; // 当前正在显示的图片 protected int index = 0; // 图片数组下标序号,子类中使用 protected double step; // 飞行物每次(1/24秒)移动的距离 protected int life; // 命 protected int state; // 飞行情状 public static final int ACTIVE = 0; // 活着状态 public static final int DEAD = 1; // 死亡状态 public static final int REMOVE = 2; // 回收状态 public FlyingObject() { life = 1; state = ACTIVE; } public FlyingObject(double width, double heigth) { this(); // 调用无参数的构造器,必须写在第一行 this.x = (int)(Math.random() * (480 - width)); this.y = -heigth; this.width = width; this.heigth = heigth; step = Math.random() * 3 + 0.8; // 初始化step为[0.8,3.8)之间的数 } public String toString() { return x + , + y + , + width + , + heigth + , + image; } public void paint(Graphics g) { g.drawImage(image, (int)x, (int)y, null); // 绘制图片 } public void move(){ if(state == ACTIVE){ y += step; return ; } else if(state == DEAD){ BufferedImage img = nextImage(); if(img == null) state = REMOVE; else image = img; if(y >= 825) state = REMOVE; } } protected abstract BufferedImage nextImage(); public void hit(){ if(life > 0){ life--; } if(life==0) {state=DEAD;} } public boolean duang(FlyingObject obj){ double x1 = this.x - obj.width; double x2 = this.x + width; double y1 = this.y - obj.heigth; double y2 = this.y + heigth; return (x1 < obj.x && obj.x
  • Java
    优质
    Java版飞机大战源码是一款使用Java语言编写的经典射击游戏《飞机大战》的完整代码库。它不仅适合编程爱好者学习和研究,还为开发者提供了开发2D游戏所需的技巧与知识基础。 使用Java原生实现的飞机大战游戏,包含关卡设计,并提供源代码(jar包)及图片资源。该jar包可以直接运行。
  • Java Swing雷霆
    优质
    本项目为使用Java Swing编写的雷霆战机游戏(又名飞机大战),提供完整的源代码供学习和研究。 Java Swing界面的飞机大战游戏实现了开始、暂停和结束的游戏界面,并且还实现了界面自动循环滚动以及英雄机的键盘控制等功能。
  • Java编写游戏
    优质
    这是一个使用Java编程语言开发的经典“飞机大战”游戏的完整源代码。该项目适合对游戏开发和Java编程感兴趣的开发者学习参考。 利用Java简单实现的飞机大战游戏,基本功能已经全部完成,并且代码中有详细的注释进行解释。
  • Java编写游戏
    优质
    这是一款使用Java语言开发的经典飞行射击类游戏《飞机大战》的完整源代码。适合编程爱好者学习参考和二次开发。 使用Eclipse开发平台开发了飞机大战小游戏。
  • Java游戏
    优质
    Java版飞机大战游戏源码是一款使用Java语言开发的经典飞行射击类游戏完整代码,适合编程爱好者和学生学习游戏设计与Java编程技术。 基于Java的飞机大战游戏主要包含我方飞机、敌方飞机、子弹、特殊NPC以及开始与结束背景画面及背景音乐元素。玩家可以使用鼠标控制己方战机移动,并在游戏一开始便能发射子弹,当对方飞行器被击中时即消失;若玩家战机触碰到敌人发出的弹幕,则其生命值会减少一格,直至只剩一个单位,此时游戏宣告失败。 该系统的主要组成部分包括: 1. 游戏状态控制功能模块:此部分负责管理游戏运行和结束的状态。首先显示开始界面,在游戏中玩家需避免敌机或将其击落;一旦玩家飞机的生命值降至零,则游戏终止并展示结局画面。 2. 游戏难度调整机制:随着游戏进行时间的增长,挑战级别随之提升——更多的敌人、更高的频率以及更复杂的操控要求使得存活变得更加困难。 3. 画布绘制功能模块:在屏幕的左上角将实时显示玩家飞机的生命值、累计得分和当前的游戏时长。其余区域用于展示战机控制与敌机动作的变化情况。 4. 玩家游戏操作接口设计:此部分确保用户能够通过鼠标来精准操控其战机,并且可以持续发射子弹以对抗敌人。 以上就是基于Java的“飞机大战”游戏的基本框架和关键功能模块概述。
  • Java游戏
    优质
    这是一款基于Java编程语言开发的“飞机大战”游戏完整源代码,适合对游戏开发和Java编程感兴趣的开发者学习与参考。 这段代码采用Java Swing编写了一个飞机大战的GUI游戏,适用于平时学习、大作业、课程设计或毕业设计项目。其中包含了源码,并可以直接导入如IntelliJ IDEA或Eclipse等开发工具中运行。如果下载后遇到问题无法正常运行,可以联系我寻求帮助解决相关问题。