java 飞机 源码_Java 飞机游戏源码(带音乐)
【實(shí)例簡介】
【實(shí)例截圖】
【核心代碼】
package liujunbo.feiji;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class ZhuChuangTi extends Frame{
public void showWin(){
Music m=new Music("/music/We_Are_One.mp3", true);
if(!m.isPlay){
m.startPlay();
}
this.setSize(800, 600);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setTitle("打飛機(jī)");
this.addWindowListener(new Wincolse());
this.setVisible(true);
//開辟線程,讓游戲啟動(dòng)
new myThread().start();
//將鍵盤添加到添加到內(nèi)部條件
this.addKeyListener(new MyKey());
}
//獲取圖片工具類
Toolkit toolKit =Toolkit.getDefaultToolkit();
//獲取一張空圖
Image ph_img=null;
//獲取背景圖片
Image bg_img = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/imgs/bg.jpg"));
Image pl_img = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/我軍飛機(jī)2.gif"));
Image bl_img = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/敵軍2.gif"));
Image pl_zidan = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/敵軍子彈3.png"));
Image pl_boss = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/Boss.png"));
Image boss_zidan = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/Boss子彈2.png"));
Image dijun_zidan = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/敵軍子彈2.png"));
WjunFeiJi pl=new WjunFeiJi (this,true);
BeiJing bg=new BeiJing(this);
Boss bs=new Boss(this,true);
// DiJunFeiJi dl=new DiJunFeiJi(this);
//WoJunZiDan pb=new WoJunZiDan(pl.pl_x, pl.pl_y, true, this);
//實(shí)例化飛機(jī)子彈集合
Listplzidan=new ArrayList();
//實(shí)例化敵軍飛機(jī)集合類
Listdijun=new ArrayList();
Listwojun=new ArrayList();
ListBoss=new ArrayList();
ListBoss_zd=new ArrayList();
Listdijun_zd=new ArrayList();
//實(shí)例化隨機(jī)類
Random random =new Random();
int time=0;
int bosstime = 0;
//雙緩沖,解決閃屏
@Override
public void update(Graphics g) {
if(ph_img==null){
ph_img=this.createImage(800, 600);
}
//創(chuàng)建一支畫筆
Graphics gph=ph_img.getGraphics();
//設(shè)置圖片為白色
gph.setColor(Color.white);
//設(shè)置與窗體大小相同的矩形
gph.fillRect(0, 0, 800, 600);
//調(diào)用paint方法
paint(gph);
g.drawImage(ph_img,0,0,null);
};
//自動(dòng)調(diào)用
@Override
public void paint(Graphics g) {
bg.drawMe(g);
pl.drawMe(g);
bs.drawWe(g);
for (int i = 0; i < dijun_zd.size(); i ) {
Dijunzidan dijunzidan=dijun_zd.get(i);
dijunzidan.drawMe(g);
dijunzidan.hitdijunzidan(pl);
}
for (int i = 0; i < Boss_zd.size(); i ) {
Bosszidan bszd=Boss_zd.get(i);
bszd.drawMe(g);
bszd.hitBosszidan(pl);
}
for (int i=0; i
WoJunZiDan pb= plzidan.get(i);
pb.drawMe(g);
pb.hitdijun(dijun);
pb.hitBoss(bs);
}
//調(diào)用敵軍飛機(jī)繪畫方法
for (int j = 0; j < dijun.size(); j ) {
DiJunFeiJi ep=dijun.get(j);
ep.drawWe(g);
ep.hitwjfj(pl);
}
}
public void quyu(){
if(random.nextInt(800)<100){
random.nextInt(800);
}else if(random.nextInt(800)>200){
random.nextInt(800);
}
}
//添加敵軍飛機(jī)
public void getdijunfeiji() {
if(time%20==0){
//實(shí)例化敵軍飛機(jī)
DiJunFeiJi di=new DiJunFeiJi(random.nextInt(750), 0, true, this);
quyu();
dijun.add(di);
}
}
//內(nèi)部類關(guān)閉窗體
private class Wincolse extends WindowAdapter{
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
//定義一個(gè)內(nèi)部類,用于游戲啟動(dòng)--->thread 線程
public class myThread extends Thread{
@Override
public void run() {
//讓游戲一直暢通
while (true){
//睡眠
//try--》捕獲異常,catch--》處理異常
try {
sleep(30);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//重繪方法 --》repaint
repaint();
//調(diào)用敵軍飛機(jī)添加方法
getdijunfeiji();
time ;
bosstime ;
}
}
}
//定義鍵盤內(nèi)部類用于飛機(jī)的操作
private class MyKey extends KeyAdapter{
//按下
@Override
public void keyPressed(KeyEvent e) {
//調(diào)用按下的方法
pl.pressKey(e);
}
//松開
@Override
public void keyReleased(KeyEvent e) {
pl.ReleasKey(e);
}
}
public static void main(String[] args) {
ZhuChuangTi gs=new ZhuChuangTi();
gs.showWin();
}
}
總結(jié)
以上是生活随笔為你收集整理的java 飞机 源码_Java 飞机游戏源码(带音乐)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打开Excel新窗口的方法
- 下一篇: 日语日常信函书信写作范文(6篇)