Android studio飞机大战游戏分析-月末总结

本文详细介绍了在Android Studio中开发飞机大战游戏的过程,包括绘制循环滚动背景、飞机和子弹的绘制、碰撞检测、爆炸效果以及音效的添加。通过封装、继承、方法重载和接口的应用,实现了游戏的主要功能。作者分享了实训过程中的学习经历和收获,从基础知识到完成游戏,信心的建立是最大成就。
摘要由CSDN通过智能技术生成

整体实现思路

绘制循环滚动的背景图片创建BackGround类
绘制飞机和子弹.创建Myplane和Bullet类
在Myplane中构造isCollision绘制飞机与boss飞机的碰撞,飞机与子弹的碰撞
绘制爆炸效果创建boom类
添加音效创建GameSoundpool添加飞机发射子弹的音效和爆炸音效

绘制循环滚动的背景图片

建一个Background类,用draw方法和logic方法使两张图片紧密连接在一起,当第一张图片小于MySurfaceView高度时另一张图片接着循环

[java] view plain copy 
1.package com.example.a29148.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.}  

绘制飞机和子弹.

绘制飞机:创建Myplane,draw方法并在MySurfaceView传递参数,在后面还定义了飞机的血量,还定义了一个布尔型的noCollision使手指可以拖动飞机,并判断飞机是否被boss飞机发射的子弹击中和被boss飞机的疯狂模式撞到减少血量;当飞机的血量小于等于零时,判定游戏失败

[java] view plain copy 
1.package com.example.a29148.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.Heigh
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值