飞机大战-MyPlane自己飞机的实现

来源:互联网 发布:java面向对象的优点 编辑:程序博客网 时间:2024/05/01 09:12


自己的飞机类,先判断他的isAlive为true和isExplosion为false如果满足再把他进行绘制,以及帧动画,游戏过程中两张图片不停的切换形成动画效果,当死亡是也有一个动

画。


package com.example.qgns;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;public class MyPlane extends GameObject {private Bitmap myPlane[]=new Bitmap[2];//定义数组图片private Bitmap myPlaneExplosion[]=new Bitmap[4]; //爆炸数组图片private float middle_x;//因为子弹的位置与飞机位置有关private float middle_y;//这两个参数传给子弹的public MyPlane(Resources res) {super(res);isAlive=true;//设为存活状态initBitmap();}@Overridepublic void initScreen(float screen_width, float screen_height) {//初始化开始位置super.initScreen(screen_width, screen_height);object_x=screen_width/2-object_width/2;object_y=screen_height-object_height*2;middle_x=object_x+object_width/2;middle_y=object_y;}@Overridepublic void initBitmap() {//初始化图片for(int i=0;i<myPlane.length;i++){myPlane[i]=BitmapFactory.decodeResource(res, R.drawable.hero1+i);}for(int j=0;j<myPlaneExplosion.length;j++){myPlaneExplosion[j]=BitmapFactory.decodeResource(res, R.drawable.hero_blowup_n1+j);}object_width=myPlane[1].getWidth();object_height=myPlane[1].getHeight();}@Overridepublic void myDraw(Canvas canvas) {if(isAlive){if(!isExplosion){canvas.drawBitmap(myPlane[currentFrome], object_x, object_y, paint);currentFrome++;//通过改变帧数从而改变动画效果if(currentFrome>=myPlane.length){currentFrome=0;}}else{canvas.drawBitmap(myPlaneExplosion[currentFrome], object_x, object_y, paint);currentFrome++;if(currentFrome>=myPlaneExplosion.length){currentFrome=0;isAlive = false;}}}}public void initObject_xy(float x,float y){//到时候触摸屏幕时调用的方法,随手指移动而移动this.middle_x=x;this.object_x=x-object_width/2;this.middle_y=y-object_height;this.object_y=y-object_height;}public float getMiddle_x(){return middle_x;}public float getMiddle_y(){return middle_y;}@Overridepublic void release() {//图片回收操作for(int i=0;i<myPlane.length;i++){if(!myPlane[i].isRecycled()){myPlane[i].recycle();}}for(int j=0;j<myPlaneExplosion.length;j++){if(!myPlaneExplosion[j].isRecycled()){myPlaneExplosion[j].recycle();}}}}



0 0
原创粉丝点击