基于Android平台的星际射击游戏的设计与实现(8)
来源:56doc.com 资料编号:5D10234 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D10234
资料介绍
public void LogicView(){ if(timer%pinglv == 0){ switch(gongjili){ case 0: bullet = new PlanePaodan(plane.planex+plane.planewidth/3, plane.planey,power,1); bullets.add(bullet); break; case 1: bullet = new PlanePaodan(plane.planex+plane.planewidth/3, plane.planey,power,1); bullets.add(bullet); bullet = new PlanePaodan(plane.planex+plane.planewidth/3, plane.planey,power+1,0); bullets.add(bullet); bullet = new PlanePaodan(plane.planex+plane.planewidth/3, plane.planey,power+2,2); bullets.add(bullet); break; case 2:break; } } if(ebullet!=null){ Vector<EnemyPaodan> deletes = new Vector<EnemyPaodan>(); for(EnemyPaodan eb:ebullets){ if(eb.paodanx<0||eb.paodanx>windowsWidth||eb.paodany>windowsHeight){ deletes.add(eb); eb = null; } } ebullets.removeAll(deletes); } } } 在主界面中,飞机的爆炸效果如图5-4,Boss出现效果如图5-5,游戏结束场景如图5-6,子弹特效场景如图5-7和5-8。 图5-4 爆炸场景 图5-5 Boss出现场景 图5-6 游戏结束场景 图5-7 子弹特效场景(1) 图5-8 子弹特效场景(2) 5.2.3 游戏属性类 本游戏中属性类有很多,包括敌机、我机、敌机子弹、我机子弹、地图、爆炸、道具,boss等,它们都是实现MyViewIMP接口中InitView()、UpdataView(Canvas canvas,Paint paint)、MoveView()、LogicView(),RelaxView()方法来实现图片的加载,移动和逻辑处理。 (1) 敌机类(Enemy.Java):在敌机类中,需要有敌机的运动轨迹,所以需要定义enemyroad变量用来控制敌机是左移还是右移。再则,敌机有各种机型,并且每种机型对应的子弹也不相同,所以必须定义enemytype变量来控制敌机的机型变化。因为敌机有很多种,定义一个Bitmap的数组对象enemyBitmap[]也是必须的。在此类中,图片的位置和大小是要随时获取的数据,也要定义enemyx、enemyy、enemywidth,enemyheight。敌机的逻辑化处理和初始化处理都是在MyView中实现,有了这些变量,本类的具体实现方法如下: public class Enemy implements MyViewIMP { public Enemy(int enemyx,int enemyy,int enemytype,int enemyroad){ this.enemyx = enemyx; this.enemyy = enemyy; this.enemytype = enemytype; this.enemyroad = enemyroad; enemyBitmap = MyView.enemyBitmap; } public void MoveView() { switch(enemyroad){ case ZUO: enemyx -= 2; break; |