• 大小: 847KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 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)之间的数 } //重写toString方法 public String toString() { return x+","+y+","+width+","+heigth+","+image; } //重写paint,方便子类对象的使用 public void paint(Graphics g) { g.drawImage(image, (int)x, (int)y, null);//绘制图片 } //飞行物移动的move方法 /** * 重构了move,方法实现播放销毁动画功能 */ 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; } /** 重构

资源截图

代码片段和文件信息

package cn.feike.shoot;

import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;

public class Airplane extends Flyingobject {
private static BufferedImage[] imgs;// 定义一个唯一的图片素材
// 静态代码块用于获取图片资源
static {
imgs = new BufferedImage[5];
try {
for (int i = 0; i < imgs.length; i++) {
String png = “cn/feike/shoot/airplane“ + i + “.png“;//获取图片路径
imgs[i] = ImageIO.read(Airplane.class.getClassLoader().getResourceAsStream(png));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public Airplane() {
super(49 36);// 初始化小飞机
this.image = imgs[0];
}
/**
 * 播放下一张图片
 */
@Override
protected BufferedImage nextImage() {
index++;
if(index >= imgs.length){
return null;//如果下标大于等于数组长度无图可播返回null.
}
return imgs[index];
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2016-07-18 15:02  飞机大战\.classpath

     文件        391  2016-07-18 15:02  飞机大战\.project

     文件        598  2016-07-18 15:02  飞机大战\.settings\org.eclipse.jdt.core.prefs

     文件       1540  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\Airplane.class

     文件       3575  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\airplane0.png

     文件       2619  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\airplane1.png

     文件       2954  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\airplane2.png

     文件       4047  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\airplane3.png

     文件       1439  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\airplane4.png

     文件        242  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\Award.class

     文件      26709  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\background.png

     文件       1969  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\Bee.class

     文件       6405  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bee0.png

     文件       6416  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bee1.png

     文件       6428  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bee2.png

     文件       6404  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bee3.png

     文件       6367  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bee4.png

     文件       1566  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\BigPlane.class

     文件       6762  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bigplane0.png

     文件       7932  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bigplane1.png

     文件       8682  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bigplane2.png

     文件       9831  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bigplane3.png

     文件       2672  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bigplane4.png

     文件        700  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\BigPlaneAward.class

     文件       1464  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\Bullet.class

     文件        408  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\bullet.png

     文件        131  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\Enemy.class

     文件       2772  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\Flyingobject.class

     文件      20220  2016-07-19 09:58  飞机大战\bin\cn\feike\shoot\gameover.png

     文件       2455  2016-07-22 20:38  飞机大战\bin\cn\feike\shoot\Hero.class

............此处省略114个文件信息

评论

共有 条评论