飞机大战-MyPlane自己飞机的实现
2015-05-30 22:36
381 查看
自己的飞机类,先判断他的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(); } @Override public 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; } @Override public 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(); } @Override public 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; } @Override public 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(); } } } }
相关文章推荐
- jQuery基础选择器
- 专家解析云部署时应避免的20个错误
- 我的Cocos2d-x学习笔记(十三)CCLabelTTF、CCLabelAtlas、CCLabelBMFont
- Launcher及Statusbar学习小结
- PLSQL设置显示中文的字符集
- 数据库事务
- kb-07专题线段树-02--单点修改,区间最值
- ubuntu下c语言hello world
- 关于在linux下用java程序执行linux命令的权限问题
- Solving "Vietnam snake" puzzle with constraint logic programming
- 【十三】队列的链式存储结构
- Fuel 30 分钟快速安装OpenStack(转)
- 2015年百度之星初赛(1) --- C 序列变换
- 使用行为树(Behavior Tree)实现游戏AI
- php页面编码与字符操作
- NoSQL-mongodb-安装
- 计算机经典书籍电子书合集(适合计算机学生学习以及程序员笔试、面试)
- [oVirt MacOS] VMware Fusion 安装oVirt Node 3.5
- CSV文件练手
- 指针常见用法总结