《飛機大戰》安卓遊戲開發原始碼 二

2021-09-02 08:51:18 字數 4653 閱讀 3172

以下是:框架:

飛機大戰專案結構

按照思路先把root**寫出來:

package com.pm_road.fireair.bean;

/***

* @classname: root

* @description: 所有實體類的父類

* @author lipeng

* @date 2014-11-5 上午10:20:19**/

public class root

public void setx(float x)

public float gety()

public void sety(float y)

public int getsrcpic()

public void setsrcpic(int srcpic) }

然後把飛機的實體類**寫出來:

package com.pm_road.fireair.bean;

/*** * @classname: plane

* @description: 飛機

* @author lipeng

* @date 2014-11-5 上午10:03:50

* */

public class plane extends root

public void setlife(int life)

public boolean isshot()

public void setshot(boolean shot) }

接下來是你控制的飛機(實體類裡沒有任何**,主要原因是繼承的原因,寫這樣乙個實體類,主要原因是用於區別敵機):

package com.pm_road.fireair.bean;

/*** 控制的戰機

* @classname: yourplane

* @description: 你的戰機,繼承飛機

* @author lipeng

* @date 2014-11-5 上午10:21:02**/

public class yourplane extends plane

敵機實體類**:(裡面也沒有任何**,主要原因是繼承了plane,區別你控制的飛機)

package com.pm_road.fireair.bean;

/***

* @classname: enemyplane

* @description: 敵機

* @author lipeng

* @date 2014-11-5 上午10:22:57**/

public class enemyplane extends plane

飛機的子彈實體類:

package com.pm_road.fireair.bean;

/***

* @classname: bullet

* @description: 子彈

* @author lipeng

* @date 2014-11-5 上午10:24:48**/

public class bullet extends root

public void setfly(boolean fly) }

實體類寫完之後:我們開始寫相應的執行緒**:首先是planerunnable 執行緒,而在此執行緒中:飛機會發射子彈,在發射子彈的時候,會再起乙個子彈執行緒bulletrunnable

package com.pm_road.fireair.thread;

import android.content.context;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.porterduff.mode;

import android.util.log;

import android.view.su***ceholder;

import android.widget.imagebutton;

import com.pm_road.fireair.bean.bullet;

import com.pm_road.fireair.bean.plane;

import com.pm_road.fireair.common.commonutil;

/*** 飛機執行緒

* * @classname: planethread

* @description: 飛機執行緒

* @author lipeng

* @date 2014-11-5 上午10:27:40

* */

public class planerunnable implements runnable

@override

public void run() catch (interruptedexception e)

}log.i(commonutil.thread_tag, 「plane停止射擊」);

}/**

* 發射一枚子彈

*/private void shotonebullet()

public plane getplane()

public void setplane(plane plane)

public imagebutton getplaneimg()

public void setplaneimg(imagebutton planeimg) }

下面是bulletrunnable 的**:,為了美化乙個效果,所以當子彈沒有碰到任何東西,飛出螢幕邊界的時候,在螢幕邊緣要進行**,**執行緒:boomrunnable

package com.pm_road.fireair.thread;

import android.content.context;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.porterduff.mode;

import android.util.log;

import android.view.su***ceholder;

import com.pm_road.fireair.bean.bullet;

import com.pm_road.fireair.common.commonutil;

/*** 子彈執行緒

* * @classname: bulletrunnable

* @description: 子彈執行緒

* @author lipeng

* @date 2014-11-5 上午10:33:19

* */

public class bulletrunnable implements runnable

@override

public void run() catch (interruptedexception e)

bullet.sety(bullet.gety() -70);

if(bullet.gety() <= 0)

try catch (interruptedexception e)

log.i(commonutil.thread_tag, 「子彈飛行中」);

}log.i(commonutil.thread_tag, 「子彈執行緒結束」);

}/**

* **效果

*/private void boom()

public bullet getbullet()

public void setbullet(bullet bullet) }

package com.pm_road.fireair.thread;

import android.content.context;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.porterduff.mode;

import android.view.su***ceholder;

import com.pm_road.fireair.bean.bullet;

/*** **執行緒

* * @classname: boomrunnable

* @description: **執行緒

* @author lipeng

* @date 2014-11-5 下午02:43:39

* */

public class boomrunnable implements runnable

@override

public void run()

public bullet getbullet()

public void setbullet(bullet bullet) }

寫完實體類和執行緒之後,就應該把他和安卓的xml 進行結合。結合**:

C C 專案原始碼 飛機大戰

這是我自己寫的乙個飛機大戰的原始碼,目前還沒有完善,只寫了我方飛機和敵方飛機,通過上下左右四個箭頭控制我方飛機行動,按空格鍵,飛機發射子彈。可自行加入其它功能,比如子彈敵機碰撞之後 下面是我寫了的專案原始碼。plane.cpp include plane.h plane plane plane pl...

安卓原始碼閱讀 原始碼編譯

mkdir bin path bin path curl bin repo chmod a x bin repowget tsinghua edu cn aosp monthly aosp latest.tar tar xf aosp latest.tar cd aosp 解壓得到的 aosp 工程...

Android開發 原始碼資源彙總

全網最全的android遊戲原始碼彙總 androidui設計之高仿系列 全網最全的android原始碼彙總 幾百個android原始碼 不斷更新中 contentprovider專題 android多執行緒開發專題 github開源專案總結 匯集的幾十個android原始碼 android開源專案...