资源描述:
《android打飞机游戏源代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、packagecom.pg;importandroid.graphics.Bitmap;importandroid.graphics.Canvas;importandroid.graphics.Paint;importandroid.view.KeyEvent;/***@authorHimi**/publicclassPlayer{//主角的血量与血量位图//默认3血privateint主角的血量=3;privateBitmap主角的血量位图;//主角的坐标以及位图publicint主角的坐标x,主角的坐标y;privateBitmap主角的位图;//
2、主角移动速度privateint主角移动速度=5;//主角移动标识(基础章节已讲解,你懂得)privatebooleanisUp,isDown,isLeft,isRight;//碰撞后处于无敌时间//计时器privateint无敌计时器=0;//因为无敌时间privateint无敌时间=60;//是否碰撞的标识位privateboolean是否碰撞;//主角的构造函数publicPlayer(BitmapbmpPlayer,BitmapbmpPlayerHp){this.主角的位图=bmpPlayer;this.主角的血量位图=bmpPlayerHp;
3、主角的坐标x=MySurfaceView.screenW/2-bmpPlayer.getWidth()/2;主角的坐标y=MySurfaceView.screenH-bmpPlayer.getHeight();}//主角的绘图函数publicvoiddraw(Canvascanvas,Paintpaint){//绘制主角//当处于无敌时间时,让主角闪烁if(是否碰撞){//每2次游戏循环,绘制一次主角if(无敌计时器%2==0){canvas.drawBitmap(主角的位图,主角的坐标x,主角的坐标y,paint);}}else{canvas.dra
4、wBitmap(主角的位图,主角的坐标x,主角的坐标y,paint);}//绘制主角血量for(inti=0;i<主角的血量;i++){canvas.drawBitmap(主角的血量位图,i*主角的血量位图.getWidth(),MySurfaceView.screenH-主角的血量位图.getHeight(),paint);}}//实体按键publicvoidonKeyDown(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_DPAD_UP){isUp=true;}if(keyCode==
5、KeyEvent.KEYCODE_DPAD_DOWN){isDown=true;}if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){isLeft=true;}if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){isRight=true;}}//实体按键抬起publicvoidonKeyUp(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_DPAD_UP){isUp=false;}if(keyCode==KeyEvent.KEYCOD
6、E_DPAD_DOWN){isDown=false;}if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){isLeft=false;}if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){isRight=false;}}//主角的逻辑publicvoidlogic(){//处理主角移动if(isLeft){主角的坐标x-=主角移动速度;}if(isRight){主角的坐标x+=主角移动速度;}if(isUp){主角的坐标y-=主角移动速度;}if(isDown){主角的坐标y+=主角移动速度;}/
7、/判断屏幕X边界if(主角的坐标x+主角的位图.getWidth()>=MySurfaceView.screenW){主角的坐标x=MySurfaceView.screenW-主角的位图.getWidth();}elseif(主角的坐标x<=0){主角的坐标x=0;}//判断屏幕Y边界if(主角的坐标y+主角的位图.getHeight()>=MySurfaceView.screenH){主角的坐标y=MySurfaceView.screenH-主角的位图.getHeight();}elseif(主角的坐标y<=0){主角的坐标y=0;}//处理无敌状态
8、if(是否碰撞){//计时器开始计时无敌计时器++;if(无敌计时器>=无敌时间){//无敌时