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

📄 bombjackscreen.java

📁 一个很不错的炸弹人J2ME游戏源码.画面及音效质量都不错,可供新手学习使用.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            if(((GameObject) (Player.player)).mode == 4)
            {
                Player.player.mode = 2;
                Player.player.jumpSpeed = 10;
            }
        } else
        if(currentKeyState == 1 && currentKey == 8)
        {
            if(((GameObject) (Player.player)).mode == 2 || ((GameObject) (Player.player)).mode == 1)
            {
                Player.player.mode = 4;
                Player.player.jumpSpeed = 0;
                hoverCounter = 0;
            } else
            if(((GameObject) (Player.player)).mode == 4)
            {
                Player.player.mode = 4;
                Player.player.jumpSpeed = (((GameObject) (Player.player)).jumpSpeed + 5) % 11;
                hoverCounter = 0;
            }
            currentKeyState = 0;
        }
        if(((GameObject) (Player.player)).mode == 2)
        {
            Player.player.jumpSpeed += 5;
            if(((GameObject) (Player.player)).jumpSpeed > 50)
                Player.player.jumpSpeed = 50;
            i = ((GameObject) (Player.player)).jumpSpeed / 10;
        } else
        if(((GameObject) (Player.player)).mode == 4)
        {
            if(++hoverCounter > 3)
            {
                Player.player.mode = 2;
                Player.player.jumpSpeed = 0;
            } else
            {
                i = ((GameObject) (Player.player)).jumpSpeed / 10;
            }
        } else
        if(((GameObject) (Player.player)).mode == 1)
        {
            Player.player.jumpSpeed += 5;
            if(((GameObject) (Player.player)).jumpSpeed >= 0)
                Player.player.mode = 2;
            i = ((GameObject) (Player.player)).jumpSpeed / 10;
        }
        if(i < -7)
            i = -7;
        else
        if(i > 6)
            i = 6;
        ai = Player.player.getGridPos(0, 0);
        int j = 0;
_L6:
        byte byte1;
        int k;
        int i1;
        if(j >= ai.length)
            break; /* Loop/switch isn't completed */
        byte1 = playfield[ai[j][1]][ai[j][0]];
        k = enemymap[ai[j][1]][ai[j][0]] & 0xfffffff8;
        i1 = enemymap[ai[j][1]][ai[j][0]] & 0x7;
        if(byte1 < 50 || byte1 > 80) goto _L2; else goto _L1
_L1:
        int j1 = playfield[ai[j][1]][ai[j][0]] - 50;
        if(bombs[j1] == null) goto _L4; else goto _L3
_L3:
        Player.player.score(bombs[j1].collect());
        if(bombs[j1] == currentBomb)
            Player.player.orderCollect++;
        Player.player.bombCollect++;
        if(powerball == null)
            Player.player.allbombs++;
        removeBomb(bombs[j1]);
        if(Player.player.bombCollect >= 24)
        {
            int l1 = 0;
            switch(Player.player.orderCollect)
            {
            case 20: // '\024'
                l1 = 10000;
                break;

            case 21: // '\025'
                l1 = 20000;
                break;

            case 22: // '\026'
                l1 = 30000;
                break;

            case 23: // '\027'
                l1 = 50000;
                break;
            }
            Player.player.score += l1;
            gameMode = 3;
            stopSound(musicPlayer);
            playSound(sndLevelfinish);
            return;
        }
        if(Player.player.allbombs > 9 && powerball == null && !Player.player.powerMode)
        {
            powerball = Enemy.getEnemy();
            if(powerball != null)
            {
                Player.player.allbombs = 0;
                powerball.init((byte)97, (playfield[0].length / 2 - 1) * 5, (playfield.length / 2 - 1) * 7, ImageLoader.getImage(13), 0);
                powerball.calcX = 8500;
                powerball.calcY = 9100;
                powerball.x = powerball.calcX / 100;
                powerball.y = powerball.calcY / 100;
            }
        }
          goto _L4
_L2:
        if(k > 0)
        {
            if(Player.player.powerMode)
            {
                for(int k1 = 0; k1 < enemies.length; k1++)
                    if(enemies[k1] != null)
                    {
                        int i2 = 1;
                        i2 <<= enemies[k1].ID;
                        if((k & i2) > 0)
                        {
                            int i3 = 0;
                            do
                            {
                                if(i3 >= scorePos.length)
                                    break;
                                if(scorePos[i3] == null)
                                {
                                    scorePos[i3] = (new int[] {
                                        SCORE_ENEMY, ((GameObject) (enemies[k1])).x - (25 - ((GameObject) (enemies[k1])).width) / 2, ((GameObject) (enemies[k1])).y - (25 - ((GameObject) (enemies[k1])).height) / 2, Player.player.enemyCollect, 0
                                    });
                                    break;
                                }
                                i3++;
                            } while(true);
                            int ai5[][] = enemies[k1].getGridPos(0, 0);
                            short word3 = (short)(~i2);
                            for(int i4 = 0; i4 < ai5.length; i4++)
                            {
                                int i5 = ai5[i4][0];
                                int i6 = ai5[i4][1];
                                if(i5 >= 0 && i5 < enemymap[0].length - 1 && i6 >= 0 && i6 < enemymap.length - 1)
                                    enemymap[i6][i5] = (short)(enemymap[i6][i5] & word3);
                            }

                            Player.player.score(enemies[k1].getPoints());
                            Player.player.enemyCollect++;
                            enemies[k1].active = false;
                            enemies[k1] = null;
                            oldScrollX = -99;
                        }
                    }

            } else
            if(!invincible)
            {
                currentBomb = null;
                gameMode = 4;
                actionAnimCount = 0;
                Player.player.die();
            }
        } else
        if(i1 > 0)
        {
            if((i1 & 0x1) == 1)
            {
                Player.player.powerMode = true;
                Player.player.powerTime = 7 * FRAMERATE;
                Player.player.enemyCollect = 0;
                int ai2[][] = powerball.getGridPos(0, 0);
                int j2 = 1;
                j2 <<= powerball.ID;
                short word0 = (short)(~j2);
                for(int j3 = 0; j3 < ai2.length; j3++)
                {
                    int j4 = ai2[j3][0];
                    int j5 = ai2[j3][1];
                    if(j4 >= 0 && j4 < enemymap[0].length - 1 && j5 >= 0 && j5 < enemymap.length - 1)
                        enemymap[j5][j4] = (short)(enemymap[j5][j4] & word0);
                }

                powerball.active = false;
                powerball = null;
                oldScrollX = -99;
            }
            if((i1 & 0x2) == 2)
            {
                Player.player.bonus++;
                int ai3[][] = bonuscoin.getGridPos(0, 0);
                int k2 = 1;
                k2 <<= bonuscoin.ID;
                short word1 = (short)(~k2);
                for(int k3 = 0; k3 < ai3.length; k3++)
                {
                    int k4 = ai3[k3][0];
                    int k5 = ai3[k3][1];
                    if(k4 >= 0 && k4 < enemymap[0].length - 1 && k5 >= 0 && k5 < enemymap.length - 1)
                        enemymap[k5][k4] = (short)(enemymap[k5][k4] & word1);
                }

                bonuscoin.active = false;
                bonuscoin = null;
                oldScrollX = -99;
            }
            if((i1 & 0x4) == 4)
            {
                Player.player.lives++;
                int ai4[][] = extracoin.getGridPos(0, 0);
                int l2 = 1;
                l2 <<= extracoin.ID;
                short word2 = (short)(~l2);
                for(int l3 = 0; l3 < ai4.length; l3++)
                {
                    int l4 = ai4[l3][0];
                    int l5 = ai4[l3][1];
                    if(l4 >= 0 && l4 < enemymap[0].length - 1 && l5 >= 0 && l5 < enemymap.length - 1)
                        enemymap[l5][l4] = (short)(enemymap[l5][l4] & word2);
                }

                extracoin.active = false;
                extracoin = null;
                oldScrollX = -99;
                buildStatusScreen();
            }
        }
_L4:
        j++;
        if(true) goto _L6; else goto _L5
        Exception exception;
        exception;
_L5:
        int ai1[] = getRealMoves(Player.player, byte0, i);
        Player.player.move(ai1[0], ai1[1]);
        return;
    }

    public int[] getRealMoves(GameObject gameobject, int i, int j)
    {
        int k = checkXCollision(gameobject, i);
        int l = checkXCollision(gameobject, i - 3);
        int i1 = checkYCollision(gameobject, j);
        int j1 = checkYCollision(gameobject, j + 3);
        int k1 = i;
        int l1 = j;
        if(gameobject.x + i < 7)
            l = k;
        if(k == 1)
            k1 = (gameobject.x / 5) * 5 - gameobject.x;
        else
        if(l == 1)
            k1 = (gameobject.x / 5) * 5 - gameobject.x;
        else
        if(k == 16)
            k1 = (gameobject.x / 5) * 5 - gameobject.x;
        else
        if(l == 16)
            k1 = (gameobject.x / 5) * 5 - gameobject.x;
        if(gameobject.mode == 2 || gameobject.mode == 4)
        {
            if(i1 == 4096)
            {
                l1 = ((gameobject.y + j) / 7 - 1) * 7 - gameobject.y;
                gameobject.mode = 0;
                gameobject.jumpSpeed = 0;
            } else
            if(j1 == 4096)
            {
                l1 = ((gameobject.y + j + 3) / 7 - 1) * 7 - gameobject.y;
                gameobject.mode = 0;
                gameobject.jumpSpeed = 0;
            } else
            if(i1 == 0x1000000)
            {
                l1 = (playfield.length - 2) * 7 - gameobject.y;
                gameobject.mode = 0;
                gameobject.jumpCounter = 0;
            }
        } else
        if(gameobject.mode == 1)
        {
            if(i1 == 256 || i1 == 4096)
            {
                l1 = (gameobject.y / 7) * 7 - gameobject.y;
                gameobject.mode = 2;
                gameobject.jumpSpeed = -5;
            } else
            if(i1 == 0x100000)
            {
                l1 = 0 - gameobject.y;
                gameobject.mode = 2;
                gameobject.jumpSpeed = 0;
            }
        } else
        if(gameobject.mode == 0 && gameobject.mode != 1 && gameobject.mode != 4 && checkYCollision(gameobject, 0) != 0x10000)
        {
            gameobject.mode = 2;
            gameobject.jumpSpeed = 8;
        }
        return (new int[] {
            k1, l1
        });
    }

    public int[] getEnemyMove(Enemy enemy, int i, int j)
    {
        int k = i;
        int l = j;
        if(k > 600)
            k = 600;
        else
        if(k < -600)
            k = -600;
        if(l > 600)
            l = 600;
        else
        if(l < -600)
            l = -600;
        int i1 = checkXCollision(enemy, (enemy.calcX + k) / 100 - ((GameObject) (enemy)).x);
        int j1 = checkYCollision(enemy, (enemy.calcY + l) / 100 - ((GameObject) (enemy)).y);
        int k1 = checkYCollision(enemy, ((enemy.calcY + l) / 100 - ((GameObject) (enemy)).y) + 3);
        if(((GameObject) (enemy)).mode == 2)
        {
            if(j1 == 4096)
            {
                enemy.calcY = ((enemy.calcY + j) / 100 / 7 - 1) * 7 * 100;
                enemy.mode = 0;
                enemy.jumpSpeed = 0;
                l = 0;
            } else
            if(k1 == 4096)
            {
                enemy.calcY = (((enemy.calcY + j) / 100 + 3) / 7 - 1) * 7 * 100;
                enemy.mode = 0;
                enemy.jumpSpeed = 0;
                l = 0;
            } else
            if(j1 == 0x1000000)
            {
                enemy.calcY = (playfield.length - 2) * 7 * 100;
                enemy.mode = 0;
                enemy.jumpSpeed = 0;
                l = 0;
            }
        } else
        if(((GameObject) (enemy)).mode == 5)
        {
            if(j1 == 256)
            {
                l = 0;
                if(enemy.type != 11)
                    enemy.speedY *= -1;
            } else
            if(j1 == 4096)
            {
                l = 0;
                if(enemy.type != 11)
                    enemy.speedY *= -1;
            } else
            if(j1 == 0x100000)
            {
                enemy.calcY = 0;
                l = 0;
                if(enemy.type != 11)
                    enemy.speedY *= -1;
            } else
            if(j1 == 0x1000000)
            {
                l = 0;
                if(enemy.type != 11)
                    enemy.speedY *= -1;
            }
        } else
        if(((GameObject) (enemy)).mode == 0 && checkYCollision(enemy, 0) != 0x10000)
        {
            enemy.mode = 2;
            enemy.jumpSpeed = 8;
        }
        if(i1 == 1)
        {
            enemy.calcX = (((GameObject) (enemy)).x / 5) * 5 * 100;
            k = 0;
            if(enemy.type == 10 || enemy.type == 98 || enemy.type == 99)
            {
                enemy.mode = 0;
                enemy.jumpSpeed = 0;
                enemy.speedX = -enemy.speedX;
                enemy.cyclecount++;
                k = 100;
            } else
            {
                enemy.speedX *= -1;
            }
        } else
        if(i1 == 16)
        {
            enemy.calcX = (((GameObject) (enemy)).x / 5) * 5 * 100;

⌨️ 快捷键说明

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