如何修改得到散弹效果-android飞机大战散弹设计

问题描述

android飞机大战散弹设计

package com.example.beatplane;

import java.util.Random;
import com.example.beatplane.R;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
/*单子弹的类*/
public class Bullet extends GameObject{
private Bitmap bullet; // 子弹的图片
Bullet(Resources resources) {
super(resources);
initBitmap();
}

// 初始化数据
@Override
public void initial(int arg0,float arg1,float arg2,int arg3) {
    isAlive = true;
    harm = 1;
    Random ran = new Random();
    speed = (ran.nextInt(20) + 100);
    object_x = arg1 ;
    object_y = arg2 ;
}
//初始化图片
@Override
public void initBitmap() {
    // TODO Auto-generated method stub
    bullet = BitmapFactory.decodeResource(resources, R.drawable.bullet);
    object_width = bullet.getWidth();
    object_height = bullet.getHeight();
}
// 绘图函数
@Override
public void drawSelf(Canvas canvas) {
    // TODO Auto-generated method stub
    if (isAlive) {
        canvas.save();
        canvas.clipRect(object_x, object_y, object_x + object_width,
                object_y + object_height);
        canvas.drawBitmap(bullet, object_x, object_y, paint);
        canvas.restore();
        logic();
    }
}
@Override
public void release(){
    if(!bullet.isRecycled()){
        bullet.recycle();
    }
}
// 对象的逻辑函数
@Override
public void logic() {
    if (object_y >= 0) {
        object_y -= speed;
    } else {
        isAlive = false;
    }
}
// 检测碰撞
@Override
public boolean isCollide(GameObject obj) {
    if(obj instanceof SmallPlane){
        if (object_x <= obj.getObject_x() && object_x + object_width <= obj.getObject_x()) {
            return false;
        }
        // 矩形1位于矩形2的右侧
        else if (obj.getObject_x() <= object_x && obj.getObject_x() + obj.getObject_width() <= object_x) {
            return false;
        }
        // 矩形1位于矩形2的上方
        else if (object_y <= obj.getObject_y()
                && object_y + object_height + 30 <= obj.getObject_y()) {
            return false;
        }
        // 矩形1位于矩形2的下方
        else if (obj.getObject_y() <= object_y
                && obj.getObject_y() + obj.getObject_height() + 30 <= object_y) {
            return false;
        }
    }
    else if(obj instanceof MiddlePlane){
        if (object_x <= obj.getObject_x() && object_x + object_width <= obj.getObject_x()) {
            return false;
        }
        // 矩形1位于矩形2的右侧
        else if (obj.getObject_x() <= object_x && obj.getObject_x() + obj.getObject_width() <= object_x) {
            return false;
        }
        // 矩形1位于矩形2的上方
        else if (object_y <= obj.getObject_y()
                && object_y + object_height + 20 <= obj.getObject_y()) {
            return false;
        }
        // 矩形1位于矩形2的下方
        else if (obj.getObject_y() <= object_y
                && obj.getObject_y() + obj.getObject_height() + 20 <= object_y) {
            return false;
        }
    }
    else{
        if (object_x <= obj.getObject_x() && object_x + object_width <= obj.getObject_x()) {
            return false;
        }
        // 矩形1位于矩形2的右侧
        else if (obj.getObject_x() <= object_x && obj.getObject_x() + obj.getObject_width() <= object_x) {
            return false;
        }
        // 矩形1位于矩形2的上方
        else if (object_y <= obj.getObject_y()
                && object_y + object_height + 10 <= obj.getObject_y()) {
            return false;
        }
        // 矩形1位于矩形2的下方
        else if (obj.getObject_y() <= object_y
                && obj.getObject_y() + obj.getObject_height() + 10 <= object_y) {
            return false;
        }
    }
    isAlive = false;
    return true;
}

}

时间: 2024-11-08 20:19:43

如何修改得到散弹效果-android飞机大战散弹设计的相关文章

全民飞机大战刷高分刷皇冠秘籍:删掉高分好友 就能有皇冠

全民飞机大战刷高分刷金币皇冠秘籍继天天飞车.天天酷跑后,腾讯又推出了一款 新的手游"全民飞机大战",有玩家表示这是此前"打飞机"游戏的升级版,也有人表示这是雷电的复制品.不管如何,全民飞机大战的推出,必将掀起一股全民飞机大战热潮.全民飞机大战还未内测,如何获得皇冠,如何赢得高分等,都备受玩家瞩目.全民飞机大战高分技巧1.与好友战机合体,获得更强的火力.2.提升战机与宠物的等级,获得更高的攻击力与防御力.3.连续击毁敌机,获得更高的连杀数.4.尽可能在空旷的地方,找准

全民飞机大战如何刷高分?刷高分技巧

注意:本教程仅适用安卓版全民飞机大战,而且手机或平板需要root. [全民飞机大战怎么刷高分] 1. 下载安装[烧饼修改器],并让它获得手机的最高权限: 百度搜索去下载"烧饼修改器 " 2. 安装成功后,烧饼修改器会在屏幕上显示一个小图标: 3. 进入游戏并开始一局游戏,点击右上角的[暂停],然后打开烧饼修改器的小图标(如下图):接着点击向左的按钮,让数字变成负数,如"-3"就是减速的意思:修改好后再继续游戏,你会发现飞机的速度会变慢. 注意:减速保持在"

全民飞机大战如何获得高分攻略

方法一,获得高分攻略 全民飞机大战五招得高分秘籍: 1.飞机飞得越远,击杀敌机越多,分数就越高. 2.短时间内连续击杀敌机即可触发连击,连击数越高,分数加成越高. 3.拾取星星也能获得一定分数加成,星星数量越多,分数加成越高(星星要捡同时也要考虑下危险因素). 4.击杀特殊阵形的敌机头目,也能获得较高奖励. 5.击杀BOSS用时越少,评级越高,奖励分数越高. 全民飞机大战高分攻略 全民飞机大战五招得高分秘籍. 方法二,烧饼修改器刷分 1.准备最新版本烧饼进入游戏 2.321结束后把飞机拉到右上角

C++编写简易的飞机大战_C 语言

初学C/C++的小伙伴可以用做这个小游戏来熟悉一下编程的乐趣. #include<windows.h> #include"resource.h" #include<stdlib.h> #include<time.h> #include<stdio.h> #define TIMER_DIREN 101 //定义定时器 #define TIMER_DIRENMOVE 102 #define TIMER_ZIDAN 103 #define TI

全民飞机大战铁流套装配什么宠物最好

    搭配宠物推荐:全民飞机大战铁流套装推荐搭配最新的宠物黄金机甲.圣诞老人.龙女都是不错的. 技能属性介绍: 主武器:铁流火箭弹(技能:导弹雨) 配件:铁流稳定器(增加导弹雨时间).铁流岂甲(每45秒出8秒无敌护盾) 装备三件套激活主机技能金刚生命之躯,增加600生命上限,这个应该是新出套装里主炮攻击力最强的.11秒发射132枚导弹,平均每秒12个,插件增加6.5秒也就是增加78枚导弹.17.5秒内除了激光全屏扫荡,总伤害高达1242150 .20多关以后boss关出的僚机炸弹炸不死打又打不

全民飞机大战进阶的丘比特怎么获得 丘比特进阶版更新时间

全民飞机大战进阶版丘比特最高等级为90级,其属性效果如下: 1.每6s回复20点血 2.每损失300血,冲刺1000m,对boss造成20w伤害 3.击杀BOSS基础得分增加150% 丘比特进阶版什么时候出 由于丘比特象征爱情,按照官方习惯,小编预计应该是情人节那会会出,应该也会在那时候推出一些新的东西,不过一切都是猜测,具体推出时间需要等待官方消息. 以上就是小编给大家带来的全民飞机大战进阶版丘比特的属性分析,想要获得进丘比特的玩家不要心急,耐心等待官方消息吧.小编也会只需关注全民飞机大战.

微信经典飞机大战游戏攻略

问:微信5.0打飞机怎么取得高分?无敌模式开启方法 微信5.0中新增了一个游戏中心功能,其中有一个内置游戏<经典飞机大战>,昨天开始小编就在朋友圈中不断的看到有朋友分享排行榜,对于想提高排名成绩的机友们而言很想知道微信5.0打飞机怎么取得高分,所以下面小编就来和大家分享下微信5.0打飞机无敌模式开启方法,教大家如何取得高分. 微信5.0打飞机怎么取得高分 现在微信5.0打飞机游戏已经被破解了,就在昨天下午就已经出现了打飞机破解补丁只要是越狱过的iPhone手机,下载安装微信打飞机无敌模式补丁后

vs-用VS写MFC飞机大战遇到的画面卡顿

问题描述 用VS写MFC飞机大战遇到的画面卡顿 一直按住一个键,时间稍长就会使得所有显示都卡顿:我想是同时触发的事件太多的原因,于是加了bool型变量来控制, if (GetKeyState(VK_SPACE) < 0&&ismybullet==false)//我子弹发射 { ismybullet = true; Mybullet *mbu = new Mybullet(); mbu->poi.x = myplane.poi.x + 20; mbu->poi.y = my

程序设计综合实践-MFC飞机大战背景两幅图片循环

问题描述 MFC飞机大战背景两幅图片循环 void CScene::StickScene(CDC &bufferDC, CRect rClient) { //设置缩放图片的模式为:COLORONCOLOR, 以消除像素重叠 bufferDC.SetStretchBltMode(COLORONCOLOR); //如果到了左边界, 回到起点 if (m_bgX <= -rClient.Width()) { m_bgX = 0; // if (m_isStart) m_isStart = fals