android 飛機大戰詳解

2021-08-20 10:00:35 字數 2739 閱讀 8965

飛機是乙個物件,這個物件的屬性包括血量、x,y軸,

飛機在飛行中會發射子彈,所以飛機應該對應著乙個子彈的執行緒

因為子彈飛行過程中,以及飛機飛行過程中都會碰到障礙物(子彈、敵機),所以在碰撞的一瞬間應該會有乙個執行緒釋放出碰撞效果

在監聽螢幕觸控事件等方面運用ontouchevent方法

鋪兩張同樣的背景圖,依次向下滾動。當第一張出現的背景圖的y軸座標大於等於螢幕底部的y軸座標時,立刻移動到第二張的頂部,同樣的,當第二張背景圖的y軸座標大於等於螢幕底部的y軸座標時,立刻移動到第一張的頂部,在視覺效果上形成迴圈。

public

void

logic()

if (y2>=mysu***ceview.height)

}

在繪製飛機的時候記得把血量帶上

private bitmap bitmap;

private bitmap bitmaphp;

private

int x,y;

private

int width,height;

private

boolean nocollision;

private

int nocollisioncount;

private

int hp =3;

public

myplane(bitmap bitmap, bitmap bitmaphp)

另外還要記得裁剪飛機

public

void myplane (canvas canvas,paint paint)

if (count==100)

}else

for (int i =0;i子彈的屬性有x,y軸,速度以及當子彈飛出螢幕外時移除它

我們把玩家子彈與boss子彈寫在乙個類中,用0代表玩家子彈,1代表boss子彈

①繪製玩家的子彈

case 1:

rectf rectf = new rectf(0,0,getwidth(),getheight());

canvas.drawbitmap(bitmapfactory.decoderesource(getresources(),r.mipmap

.gamewin),null,rectf,paint);

break

;

設定玩家子彈飛行速度與方向以及移除玩家子彈,因為在視覺效果中玩家子彈是向上飛的,所以y軸為-

switch (type)

break;

②繪製boss子彈

case 2:

rectf rectf1 = new rectf(0,0,getwidth(),getheight());

canvas.drawbitmap(bitmapfactory.decoderesource(getresources(),r.mipmap

.gamelost),null,rectf1,paint);

break

;

設定boss子彈飛行速度與方向以及移除,與玩家子彈相反,boss子彈y軸為+

//boss子彈

case

1: y += speed+8;

if (y < 0)

break;

default:

break;

我們設定當子彈的座標與飛機的座標重合時判定子彈與飛機碰撞;

玩家飛機與boss飛機座標重合時判定飛機與飛機碰撞

private

void

ff()

break;

case

1:

y+=(speed/2);

if (y>mysu***ceview.heigth)

break;

} }

首先繼承子彈類,因為子彈碰撞到飛機後才會產生**,然後將**效果一幀幀的繪製出來

public

class

boom

extends

bullet

public

void

draw(canvas canvas, paint paint)

public

void

logic()

}public

boolean

isend()

}

首先定義乙個遊戲音效類gamesoundpool,定義soundpool物件

public

class gamesoundpool

public

void

playsound(int s)

}}

①封裝到處都有吧

②**效果那裡就用到了繼承

③玩家子彈與boss子彈用到了多型

④ ⑤su***ceholder.callback,與runnable

乙個極其簡單的小飛機遊戲卻花掉了我一周的時間(也可以說是乙個月,之前三周學的基礎知識就在這裡得到了應用),真的無法想象我們平時玩的例如lol、dnf、吃雞之類的遊戲是由多少行**構成的。在程式設計這一行我算是沒什麼天賦的平庸之輩,只能用努力去不斷彌補。

路漫漫其修遠兮,吾將上下而求索。

飛機大戰遊戲詳解

private void logic else if y2 mysu ceview.height public void draw canvas canvas,paint paint public void run 還要記得用 裁剪飛機 public void myplane canvas canv...

飛機大戰 3

今天主要是敵方飛機的建立,下落 前面已建飛機的父類call 2 敵方飛機 function enemyplane hp,x,y,sizex,sizey,score,dietime,sudu,bombplane,srcimage 敵方的飛機型別分為大中小,要隨機下落 飛機的隨機下落,大中小飛機出現頻率...

飛機大戰 一

圖1 遊戲開始 圖2 英雄機,子彈,敵機和小蜜蜂 圖4 遊戲結束 圖5 遊戲暫停 由圖2可以看出遊戲中至少有4個類,hero 英雄機 airplane 敵機 bee 小蜜蜂 bullet 子彈 圖6注 圖6中,英雄機,子彈,敵機和小蜜蜂均為矩形,所以會有x座標和y座標 會在程式中有體現 1.建立4個...