Android studio 飞机大战实训报告

本文详细介绍了在Android Studio中开发飞机大战游戏的过程,包括如何在MySurfaceView中创建run方法,使用mipmap资源,绘制飞机、子弹和背景,实现碰撞检测,以及添加音效。此外,还讨论了代码中涉及的封装、继承和多态等编程概念。
摘要由CSDN通过智能技术生成
1.游戏分析
飞机大战中的主要“角色”有:
1.玩家飞机
2.敌方飞机
3.玩家飞机发送的子弹
4.敌方Boss飞机发送的子弹
我们需要控制的有:
1.绘制屏幕内的角色
2.控制角色的逻辑,比如:敌方飞机与我方飞机的碰撞检测,我方飞机发射的子弹与敌方飞机之间的碰撞检测,敌方Boss飞机发射的子弹与我方飞机直接的碰撞检测等等。
资源:
要完成一个游戏,还要有资源的加载,比如飞机,子弹等图片的加载等,音效的加载。
游戏背景的绘制

其实是一张图,这张图可以首尾相接,也即是“卷轴”,原理就是卡马克卷轴算法的原理。


2、如何绘制循环滚动的背景图片

在MySurfaceView中创建run方法

调用mipmap中的背景图片 

再创建BackGround类

代码如下:

  1. package com.example.lenovo.myapplication;  
  2.   
  3. import android.graphics.Bitmap;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Paint;  
  6.   
  7. public class BackGround {  
  8.     private int y1;  
  9.     private  int y2;  
  10.     private Bitmap bitmap;  
  11.     public BackGround(Bitmap bitmap){  
  12.         this.bitmap = bitmap;  
  13.         y1 = 0;  
  14.         y2 = y1-bitmap.getHeight();  
  15.     }  
  16.     public void draw(Canvas canvas){  
  17.   
  18.         logic();  
  19.         Paint paint = new Paint();  
  20.         canvas.drawBitmap(bitmap,0,y1,paint);  
  21.         canvas.drawBitmap(bitmap,0,y2,paint);  
  22.     }  
  23.     public void logic(){  
  24.         y1+=5;  
  25.         y2+=5;  
  26.         if(y1>=MySurfaceView.Height){  
  27.             y1=y2-bitmap.getHeight();  
  28.         }  
  29.         if(y2>=MySurfaceView.Height){  
  30.             y2=y1-bitmap.getHeight();  
  31.         }  
  32.     }  
  33. }  
3、如何绘制飞机
绘制敌机:

  1. package com.example.lenovo.myapplication;  
  2.   
  3. import android.graphics.Bitmap;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Paint;  
  6.   
  7. import java.util.function.BooleanSupplier;  
  8.   
  9. public class BossPlane {  
  10.     private Bitmap bitmap;  
  11.     private int x,y;  
  12.     private int frameW,frameH;  
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值