⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bosscanvas.java

📁 一个基于JAVA的手机射击类游戏``有过关模式
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            if(corsair[i].isVisible()){
                corsair[i].move(0,6);
                if(corsair[i].collidesWith(playerPlane,true)){
                    addExplosion(playerPlane);
                    playerHP = playerHP - 8;//海盗船的摧毁力为8
                    corsair[i].setVisible(false);
                }
                corsair[i].nextFrame();
                corsair[i].checkBounds();
            }
        }
        
        //显示太空驳船
        if(random.nextInt()% 80 == 0){
            for(int i= 0; i< SPACEBARGECOUNTS; i++){
                if(!spaceBarge[i].isVisible()){
                    spaceBarge[i].setPosition(Math.abs(random.nextInt()%getWidth()),20);
                    spaceBarge[i].setVisible(true);
                }
            }
        }
        //维护太空驳船
        for(int i= 0; i< SPACEBARGECOUNTS; i++){
            if(spaceBarge[i].isVisible()){
                spaceBarge[i].move(0,4);
                if(spaceBarge[i].collidesWith(playerPlane,true)){
                    addExplosion(playerPlane);
                    playerHP = playerHP - 5;//太空驳船的摧毁力为5
                    spaceBarge[i].setVisible(false);
                }
                spaceBarge[i].nextFrame();
                spaceBarge[i].checkBounds();
            }
        }
        
        //显示监督者
        if(random.nextInt()% 90 == 0){
            for(int i= 0; i< SUPERVISORCOUNTS; i++){
                if(!supervisor[i].isVisible()){
                    supervisor[i].setPosition(Math.abs(random.nextInt()%getWidth()),20);
                    supervisor[i].setVisible(true);
                }
            }
        }
        //维护监督者
        for(int i= 0; i< SUPERVISORCOUNTS; i++){
            if(supervisor[i].isVisible()){
                supervisor[i].move(0,5);
                if(supervisor[i].collidesWith(playerPlane,true)){
                    addExplosion(playerPlane);
                    playerHP = playerHP - 6;//监督者的摧毁力为6
                    supervisor[i].setVisible(false);
                }
                supervisor[i].nextFrame();
                supervisor[i].checkBounds();
            }
        }
        
        //显示杀手卫星
        if(random.nextInt()% 60 == 0){
            for(int i= 0; i< KILLERSATELLITESCOUNTS; i++){
                if(!killerSatellites[i].isVisible()){
                    killerSatellites[i].setPosition(Math.abs(random.nextInt()%getWidth()),20);
                    killerSatellites[i].setVisible(true);
                }
            }
        }
        //维护杀手卫星
        for(int i= 0; i< KILLERSATELLITESCOUNTS; i++){
            if(killerSatellites[i].isVisible()){
                killerSatellites[i].move(0,6);
                if(killerSatellites[i].collidesWith(playerPlane,true)){
                    addExplosion(playerPlane);
                    playerHP = playerHP - 8;//杀手卫星的摧毁力为8
                    killerSatellites[i].setVisible(false);
                }
                killerSatellites[i].nextFrame();
                killerSatellites[i].checkBounds();
            }
        }
        //=================对敌机的维护end=================
        // ===================玩家=================
        if (!playerPlane.isVisible()) {
            addCharacter(playerPlane);
        } else if (playerPlane.isVisible()) {
            int keyStates = getKeyStates();
            if ((keyStates & LEFT_PRESSED) != 0) {
                playerPlane.move(-4, 0);
            } else if ((keyStates & RIGHT_PRESSED) != 0) {
                playerPlane.move(4, 0);
            }
            //返回菜单
            else if((keyStates & UP_PRESSED) != 0){
                System.out.println("4.game interrupted! back to menu!");
                missionBossGameOver = false;
                bossThread = null;
                isWin = false;
                Dragon.MISSIONCOUNTS = Dragon.MENULIST;
                Dragon.showMenu = true;
            }else if ((keyStates & FIRE_PRESSED) != 0) {
                if (random.nextInt() % 2 == 0) {
                    for (int i = 0; i < MISSILECOUNTS; i++) {
                        if (!missile[i].isVisible()) {
                            addMissile(playerPlane);
                            break;
                        }
                    }
                }
            }
            playerPlane.checkBounds();
        }
        
        // ===============随机增加导弹start==============
        // boss发射第四种导弹
        if (random.nextInt() % 15 == 0) {
            for (int i = 0; i < MISSILECOUNTS; i++) {
                if (!missile[i].isVisible()) {
                    missile[i].setFrame(3);
                    missile[i].setPosition(boss.getX() + 42, boss.getY() + 70);
                    missile[i].setVisible(true);
                    break;
                }
                
            }
        }
        // boss发射第五种导弹
        if (random.nextInt() % 16 == 0) {
            for (int i = 0; i < MISSILECOUNTS; i++) {
                if (!missile[i].isVisible()) {
                    missile[i].setFrame(4);
                    missile[i].setPosition(boss.getX() + 42, boss.getY() + 70);
                    missile[i].setVisible(true);
                    break;
                }
                
            }
        }
        // boss发射第十三种导弹
        if (random.nextInt() % 15 == 0) {
            for (int i = 0; i < MISSILECOUNTS; i++) {
                if (!missile[i].isVisible()) {
                    missile[i].setFrame(12);
                    missile[i].setPosition(boss.getX() + 42, boss.getY() + 70);
                    missile[i].setVisible(true);
                    break;
                }
                
            }
        }
        // boss发射第五种导弹
        if (random.nextInt() % 8 == 0) {
            for (int i = 0; i < MISSILECOUNTS; i++) {
                if(!missile[i].isVisible()){
                    missile[i].setFrame(8);
                    missile[i].setPosition(boss.getX() + 7, boss.getY() + 70);
                    missile[i].setVisible(true);
                    missile[i + 1].setFrame(8);
                    missile[i + 1].setPosition(boss.getX() + 16,
                            boss.getY() + 70);
                    missile[i + 1].setVisible(true);
                    missile[i + 2].setFrame(8);
                    missile[i + 2].setPosition(
                            (boss.getX() + boss.getWidth()) - 4,
                            boss.getY() + 70);
                    missile[i + 2].setVisible(true);
                    missile[i + 3].setFrame(8);
                    missile[i + 3].setPosition(
                            (boss.getX() + boss.getWidth()) - 16,
                            boss.getY() + 70);
                    missile[i + 3].setVisible(true);
                    break;
                    
                }
                if (!missile[i + 1].isVisible()) {
                    missile[i + 1].setFrame(8);
                    missile[i + 1].setPosition(boss.getX() + 16,
                            boss.getY() + 70);
                    missile[i + 1].setVisible(true);
                }
                if (!missile[i + 2].isVisible()) {
                    missile[i + 2].setFrame(8);
                    missile[i + 2].setPosition(
                            (boss.getX() + boss.getWidth()) - 4,
                            boss.getY() + 70);
                    missile[i + 2].setVisible(true);
                }
                if (!missile[i + 3].isVisible()) {
                    missile[i + 3].setFrame(8);
                    missile[i + 3].setPosition(
                            (boss.getX() + boss.getWidth()) - 16,
                            boss.getY() + 70);
                    missile[i + 3].setVisible(true);
                }
                break;
            }
        }
        // ===============随机增加导弹end==============
        
        // ===============急救箱start===============
        if (random.nextInt() % 180 == 0) {
            for (int i = 0; i < 20; i++) {
                if (!missile[i].isVisible()) {
                    missile[i].setFrame(9);
                    missile[i].setPosition(Math.abs(random.nextInt()
                    % (getWidth() - 50) + 25), Math.abs(random
                            .nextInt()
                            % (getHeight() - 100)) + 25);
                    missile[i].setVisible(true);
                    break;
                }
            }
        }
        // =============急救箱end==================
        
        // ===============红心start=================
        if (random.nextInt() % 350 == 0) {
            for (int i = 0; i < MISSILECOUNTS; i++) {
                if (!missile[i].isVisible()) {
                    missile[i].setFrame(13);
                    missile[i].setPosition(Math.abs(random.nextInt()
                    % (getWidth() - 50) + 25), Math.abs(random
                            .nextInt()
                            % (getHeight() - 100) + 25));// x(25~151),y(25~123)
                    missile[i].setVisible(true);
                    break;
                }
            }
        }
        // ===============红心end==================
        
        // ============爆炸处理start===============
        for (int i = 0; i < EXPLOSIONCOUNTS; i++) {
            if (explosion[i].isVisible()) {
                if (explosion[i].getFrame() < 3) {
                    explosion[i].nextFrame();
                } else {
                    explosion[i].setVisible(false);
                }
            }
        }
        // ============爆炸处理end================
        
        // =============导弹处理start================
        for (int i = 0; i < MISSILECOUNTS; i++) {
            if (missile[i].isVisible()) {
                // 玩家发射导弹
                if (missile[i].getFrame() == 14) {
                    missile[i].move(0, -5);
                    if (missile[i].collidesWith(boss, true)) {
                        addExplosion(boss);
                        bossHP = bossHP - 2;
                        playerScores = playerScores + 10;
                        missile[i].setVisible(false);
                    }
                    //击中海盗船
                    for(int j =0; j< CORSAIRCOUNTS; j++){
                        if (missile[i].collidesWith(corsair[j], true)) {
                            addExplosion(corsair[j]);
                            playerScores = playerScores + 10;
                            missile[i].setVisible(false);
                            corsair[j].setVisible(false);
                            break;
                        }
                    }
                    //击中太空驳船
                    for(int j =0; j< SPACEBARGECOUNTS; j++){
                        if (missile[i].collidesWith(spaceBarge[j], true)) {
                            addExplosion(spaceBarge[j]);
                            playerScores = playerScores + 10;
                            missile[i].setVisible(false);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -