Java實現(xiàn)簡單的飛機大戰(zhàn)游戲(控制主飛機篇)_第1頁
Java實現(xiàn)簡單的飛機大戰(zhàn)游戲(控制主飛機篇)_第2頁
Java實現(xiàn)簡單的飛機大戰(zhàn)游戲(控制主飛機篇)_第3頁
Java實現(xiàn)簡單的飛機大戰(zhàn)游戲(控制主飛機篇)_第4頁
Java實現(xiàn)簡單的飛機大戰(zhàn)游戲(控制主飛機篇)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第Java實現(xiàn)簡單的飛機大戰(zhàn)游戲(控制主飛機篇)本文實例為大家分享了Java實現(xiàn)簡單的飛機大戰(zhàn)游戲,控制主飛機的具體代碼,供大家參考,具體內(nèi)容如下

接著上一篇:Java實現(xiàn)簡單的飛機大戰(zhàn)游戲(敵機下落篇),首先我們需要明白,在控制一架飛機的時候,需要通過對鍵盤的監(jiān)聽。上下左右比較簡單,因為是對單一按鍵的監(jiān)聽,在這里我們可以通過switch語句,通過讀取鍵盤上每個按鍵的ASCII值。但是如果想要實現(xiàn)邊飛行邊發(fā)射子彈,又或者是實現(xiàn)斜飛怎么辦?這里就需要通過對多個按鍵的監(jiān)聽。

解決的方法是:單一的方向控制我們還是使用switch語句,但是如果牽扯到2個或2個以上的按鍵監(jiān)聽,我們需要將按鍵設(shè)置一下標(biāo)記位。即按下為真,釋放為假。并且這些處理都是在switchcase語句以外,就可以實現(xiàn)斜飛。然后再對窗體進行重繪,我們就可以看到飛機的坐標(biāo)在不斷的發(fā)生改變。

如以下代碼所示:

publicclassMovePlaneListenerextendsKeyAdapterimplementsKeyListener{

publicintx,y,flag=0;

publicJFrameframe;

publicbooleanleft=false,right=false,up=false,down=false;

publicGraphicsg;

publicImageimage;

publicintx1,y1,vy=16;

publicVectorBulletvector;

ImageIconicon=newImageIcon("plane/myplane.png");

publicBulletAIba;

publicvoidsetmove(intx,inty,JFrameframe){

this.x=x;

this.y=y;

this.frame=frame;

}

publicMovePlaneListener(){

vector=newVectorBullet

}

publicvoidkeyPressed(KeyEvente){

switch(e.getKeyCode()){

case87://W-上

if(y0){

y=y-3;

up=true;

}

break;

case65://A-左

if(x0){

x=x-3;

left=true;

}

break;

case83://S-下

if(y+icon.getIconHeight()frame.getHeight()){

y=y+3;

down=true;

}

break;

case68://D-右

if(x+icon.getIconWidth()frame.getWidth()){

x=x+3;

right=true;

}

break;

case32://空格-發(fā)射子彈

Bulletbu=newBullet(vector,frame,x,y,vy);

vector.add(bu);

ba=newBulletAI(vector,frame,x,y,vy);

if(flag==0){

ba.start();

flag=1;

}

break;

}

if(x0y0x+icon.getIconWidth()frame.getWidth()

y+icon.getIconHeight()frame.getHeight())

{

if(left==trueup==true){

x=x-3;

y=y-3;

}elseif(left==truedown==true){

x=x-3;

y=y+3;

}elseif(right==trueup==true){

x=x+3;

y=y-3;

}elseif(right==truedown==true){

x=x+3;

y=y+3;

}

}

//System.out.println(x+""+y);

//窗體重繪

frame.repaint();

}

publicvoidkeyReleased(KeyEvente){

switch(e.getKeyCode()){

case87://上

up=false;

break;

case65://左

left=false;

break;

case83://下

down=false;

break;

case68://右

right=false;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論