java版飞机⼤战⼩游戏详细教程(零基础⼩⽩也可以分分钟学会)⽬录
⼀:游戏展⽰
飞机⼤战⼩游戏我们都玩过,通过移动飞机来打敌机,这⾥给⼤家展⽰⼀下游戏成果:
呜呜呜由于gif只能上传5M⼤⼩,所以就不能给⼤家展⽰操作了,如果⼤家有兴趣可以⾃⼰⾃⼰做出来再玩哟。
这⾥⾯所有的飞机、⼦弹、敌机、爆炸效果都可以随意替换成⾃⼰想要的图⽚。⼤家可以任意发挥。也可以制作⽆敌版。
例如我可以把敌机替换成乌龟:
⼤家可以随意发挥哦。⼆:游戏教程1.View视图层
项⽬结构:
1.1制作游戏⾯板类
package;
import PlaneController;
import EnemyPlane;
import FightPlane;
import P;
import*;
/**
* 窗⼝类
*/
public class FrameWindow {
/java零基础该怎么学
**
* 构造⽅法
*/
public FrameWindow(){
launch();
}
/**
* 创建窗⼝界⾯
*/
public void launch(){
FightPlane fightPlane =new FightPlane();
PlaneController controller =new PlaneController(fightPlane);//飞机控制类
GamePanel gamePanel =new GamePanel(fightPlane);
JFrame jFrame =new JFrame();
jFrame.add(gamePanel);
jFrame.setTitle("飞机⼤战");
jFrame.addKeyListener(controller);//给窗⼝设置监听事件
jFrame.setSize(P.WEIGHT, P.HEIGHT);//设置窗⼝⼤⼩
jFrame.setVisible(true);//显⽰在窗⼝
jFrame.setResizable(false);//使窗⼝⼤⼩固定
jFrame.setLocationRelativeTo(null);//初始化的界⾯显⽰的位置,null为内容⾃适应
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭之后后台也会关闭}
}
1.2.制作游戏内容显⽰类
package;
import CreateEnemy;
import EnemyPlane;
import FightPlane;
import P;
import PUtils;
import*;
import*;
import LinkedList;
import List;
import Random;
/**
* 游戏⾯板
*/
public class GamePanel extends JPanel {
public static long count =0;//消灭敌机数量
public static List<EnemyPlane> EnemyPlaneArrayList =new LinkedList<EnemyPlane>(); private FightPlane fightPlane;//战⽃机
public ImageIcon bz2 =new
Image("images/dd2.png"));
//构造⽅法,启动这个线程
public GamePanel(FightPlane fightPlane){
this.fightPlane = fightPlane;
new updateGame().start();//不断重画出画布
new CreateEnemy().start();//画出10架敌机
}
boolean flage =true;
@Override
public void paint(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(0,0, P.WEIGHT, P.HEIGHT);
g.d);
g.drawString("杀龟数量:"+ count,650,50);
//画出战⽃机
if(fightPlane !=null){
fightPlane.drawMe(g);
}
//画出敌机
for(int i =0; i < EnemyPlaneArrayList.size(); i++){
(i).flat ==1){
int x = (i).x;
int y = (i).y;
g.Image(), x, y,150,150,null); (i).flat--;
System.out.println(count);
(i).flat ==-3){
int c =new Random().nextInt(650)+50;
<(i).x = c;
<(i).y =-150;
}
}else{
<(i).drawMe(g);
}
}
}
//内部类,创建⼀个线程不停的刷新界⾯
class updateGame extends Thread {
@Override
public void run(){
while(flage){
repaint();
}
}
}
}
2.1游戏实体抽象类
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论