shoot射击游戏项目二

编程入门 行业动态 更新时间:2024-10-10 23:19:04

shoot<a href=https://www.elefans.com/category/jswz/34/1767335.html style=射击游戏项目二"/>

shoot射击游戏项目二

shoot射击游戏项目二

1.需求分析

A:设计一个父类、超类;并且让6个对象继承超类,测试

B:给超类设计构造方法;让6个对象分别调用超类;

C:设置数组,进行测试

D:在6个子类、派生类中重写

E:画窗体;

2.技术分析

重写和重载(面试笔试题)

重写:(Override)

​ 发生在父子类中,方法名相同、参数类表相同、方法体不同。

​ 遵循“运行期绑定”,看对象类型来调用方法;

重载:(overlord)

​ 发生在一个类中,方法名相同,参数类表不相同、方法体不同。

​ 遵循“编译期的绑定”,看参数、引用列表

3.代码实现

英雄机

public class Hero extends FlyingObject{int life;//生命值int doubleFile;//火力/*** 构造方法*/public Hero() {super(97,124,140,400);life = 5;doubleFile = 0;//单倍火力}/*** 英雄级移动*/void moveTo() {System.out.println("英雄级移动");}
}

小敌机

public class Airplane extends FlyingObject {int speed;// 速度/**构造方法 */public Airplane() {super(49, 36);this.speed = 3;}/** 移动 */void step() {System.out.println("小敌机移动了!"+speed);}
}

大敌机

public class Bigplane extends FlyingObject{int speed;// 速度/*** 构造函数*/public Bigplane() {super(49, 36);this.speed = 2;}
}

蜜蜂

public class Bee extends FlyingObject{int xspeed;// x轴速度int yspeed;// Y轴速度int awardType;//获取奖励	public Bee() {super(29, 36);this.xspeed = 1;this.yspeed = 2;Random random= new Random();awardType = random.nextInt(2);}/*** 移动*/void step() {System.out.println("蜜蜂移动了!"+xspeed);}
}

背景

public class Sky extends FlyingObject{int speed;// 速度/*** 构造方法*/public Sky() {super(400, 700,0,0);this.speed = 1;}	void step() {System.out.println("天空移动");}
}

子弹

public class Bullet extends FlyingObject{int speed;// 速度	public Bullet(int x ,int y) {super(8,4,x,y);this.speed = 2;}/*** 子弹移动*/void step() {System.out.println("子弹移动");}
}

父类:飞行物

public class FlyingObject {//成员变量int width;//宽int height;//高int x;//x轴int y;//y轴/*** 提供敌人(小敌机、大敌机、蜜蜂)*/public FlyingObject(int width,int height) {this.width = width;this.height = height;Random random= new Random();this.x = random.nextInt(400-this.height);this.y = -this.height;}/*** 提供英雄机、子弹、天空的构造*/public FlyingObject(int width,int height,int x,int y) {this.width =width;this.height = height;this.x = x ;this.y = y;}void step() {System.out.println("飞行物移动");}	
}

主类

public class ShootMain extends JPanel{//创建对象,进行方法调用,移动测试。Sky sky = new Sky();FlyingObject[] flyingObject = new FlyingObject[0];	/*** 测试方法*/public void action() {sky.step();flyingObject = new FlyingObject[5];flyingObject[0] = new Airplane();flyingObject[1] = new Hero();flyingObject[2] = new Bigplane();flyingObject[3] = new Bee();flyingObject[4] = new Sky();for (int i = 0; i < flyingObject.length; i++) {flyingObject[i].step();}	}//花对象@Overridepublic void paint(Graphics g) {super.paint(g);g.setColor(Color.blue);g.drawOval(150, 150,100, 100);g.drawOval(250, 150,100, 100);g.drawOval(350, 150,100, 100);g.drawOval(400, 150,100, 100);g.drawImage(sky.loadImage("background.png"),100,150,null);for (int i = 0; i < flyingObject.length; i++) {flyingObject[i]}}/*** 主函数,程序入口*/public static void main(String[] args) {ShootMain shootMain = new ShootMain();shootMain.action();//窗体JFrame jFrame= new JFrame();jFrame.add(shootMain);jFrame.setSize(500,700);jFrame.setTitle("Shoot");jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE);jFrame.setLocationRelativeTo(null);//居中显示jFrame.setVisible(true);shootMain.action();}}

更多推荐

shoot射击游戏项目二

本文发布于:2024-02-07 07:39:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754983.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:射击游戏   项目   shoot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!