📄 bombjackscreen.java
字号:
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 + -