【18.5.31 日常】Android项目——飞机大战详解

本文详细介绍了Android项目飞机大战的实现过程,包括绘制循环滚动背景、飞机移动、子弹发射、碰撞判断、爆炸效果以及音效的添加。文章还探讨了在游戏开发中封装、继承、多态、方法重载和接口的应用,提供了丰富的代码示例。
摘要由CSDN通过智能技术生成

整体实现思路

通过两张背景图片实现背景滚动,同时做出能根据用户触摸位置不同而改变位置的飞机,能够不停地射出子弹,Boss同理,Boss移动方式随机,同时添加小飞机以增强游戏的表现力,外加例如激光之类的特殊游戏模块来增强游戏的可玩性,最后添加主界面和启动界面来增强游戏的整体性。

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

实现思路

通过编辑两张同样照片实现再屏幕上永远显示一张图片,同时当第一张图片完全移除窗口时迅速的移到另一张图片的上方相接来制造出背景无限滚动的效果

注意

图片的选择与使用必须采用整体对称相接的,以免出现接不到一起的尴尬,本次游戏图片默认第一关使用下图
这里写图片描述

代码

`Public class BackGround {
    private static int y1;
    private static int y2;
    private Bitmap bitmap;
    static int height;
    public BackGround(Bitmap bitmap,int height){
        this.bitmap = bitmap;
        this.height = height;
        y1 = 0;
        y2 = y1-MySurfaceView.height;
    }

    public void bGP(Canvas canvas,Paint paint){     //绘制每一帧的背景图片

        bYH();
        paint.setColor(Color.RED);
        canvas.drawBitmap(bitmap,0,y1,paint);
        canvas.drawBitmap(bitmap,0,y2,paint);

    }

 public void bYH(){                                                       //在每一帧中变换两张图片的Y坐标实现图片变化
        y1+=10;
        y2+=10;
        if(y1>=MySurfaceView.height){
            y1 = y2-bitmap.getHeight();
        }
        if(y2>=MySurfaceView.height){
            y2 = y1-bitmap.getHeight();
        }
    }
}`

如何绘制飞机

飞机的整体移动原理

通过创建一个事件监听器,在用户每一次对屏幕进行触摸滑动操作时进行监听,一旦用户的触碰点在飞机的坐标范围围城的矩形范围内时,就进行数据的赋值,将拖动后的坐标赋予该帧的飞机,以此来实现飞机的拖动移动,至于飞机的绘制,直接使用canvas.drawBitmap即可

代码片

触摸事件监听及判断核心代码

 public boolean onTouchEvent(MotionEvent event) {
         plane.touchEvent(event);
        return true;  //该句代码实现了监听器永远监听的功能
    }
    public void touchEvent(MotionEvent event) {
  //该方法处在飞机类中,用来对坐标进行判断并对飞机坐标进行赋值
        if (event</
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BeanSten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值