📄 samkokgame.java
字号:
{
if(bossStageFinish > 0)
bossStageFinish++;
if(bossStageFinish >= 41)
levelFinish = 2;
}
} else
{
if(bossStageFinish > 0)
bossStageFinish++;
if(bossStageFinish >= 41)
levelFinish = 2;
}
}
private void processFloor()
{
if(playerJump && playerAddY > 0)
{
playerJump = false;
playerTempJump = false;
playerAddY = 0;
playerY = (playerY >> 4) << 4;
if(!playerFight)
if(playerAddX == 0)
{
playerMode = 0;
playerFrameStep = 0;
} else
if(playerAddX > 0)
processMoveX(5);
else
processMoveX(2);
}
}
private void processMoveAdd()
{
processMonster();
processEffectMove();
playerFrameStep++;
frameStep = 0;
if(playerLifeOn > 0)
playerLifeOn--;
if(bossLifeOn > 0)
bossLifeOn--;
if(showItemName > 0)
showItemName--;
if(playerDie > 0)
{
playerDie--;
if(playerDie == 0)
{
playerDie = -1;
if(playerHP > 0 && playerX < mapSizeX << 3)
restartGame(0, 96, false);
else
if(playerHP > 0 && mapNumber == 32)
restartGame(mapSizeX << 3, 64, false);
else
if(playerHP > 0)
restartGame(mapSizeX << 3, 96, false);
else
if(playerLife > 0)
{
playerLife--;
if(mapNumber == 15)
restartGame(0, 64, true);
else
restartGame(0, 96, true);
} else
{
gameOver = true;
gameMode = 90;
}
}
playerAddX = 0;
playerAddY = 0;
return;
}
for(int i = 0; i < 3; i++)
if(specialType[i] > 0)
{
specialType[i]--;
if(specialType[i] == 0)
if(i == 2)
playerWalkStep = 3;
else
if(i == 1)
playerAttack = 1;
}
if(playerFight)
{
if(playerFrame[fightFrameMode][playerFrameStep] == 0)
{
playerFrameStep = 0;
playerAddX = 0;
playerFight = false;
if(playerNextMode >= 4)
{
playerFight = true;
playerNextMode = 0;
if(playerNextFight >= 2)
{
setFightAction(weaponMode, 2);
playerNextFight = 0;
} else
{
setFightAction(weaponMode, 1);
}
} else
if(playerJump)
{
playerMode = 1;
playerNextFight = 0;
} else
{
playerMode = 0;
playerNextFight = 0;
}
fightTime = System.currentTimeMillis();
} else
if(playerMode == 6 && playerFrameStep == 1)
addPlayerShot();
else
if(playerMode == 12 && playerFrameStep >= 12)
playerAddX = 0;
else
processAddAttack();
} else
if(playerFrame[playerMode][playerFrameStep] == 0 && playerMode == 2)
{
playerAddX = nextAddX;
if(playerAddX == 0 && playerAddY == 0)
playerMode = 0;
else
if(playerAddY != 0)
playerMode = 1;
else
playerMode = 1;
playerFrameStep = 0;
} else
if(playerFrame[playerMode][playerFrameStep] == 0 || playerFrameStep >= 15)
playerFrameStep = 0;
}
private void processNext()
{
if(startLevel <= 60)
{
startLevel -= 2;
if(startLevel == -2)
startLevel = 62;
return;
}
if(levelFinish > 0)
processFinish();
else
switch(gameMode)
{
default:
break;
case 10: // '\n'
if(System.currentTimeMillis() - gameTime > 50L)
{
gameTime = System.currentTimeMillis();
haveDraw = true;
if(playerMode == 12 && playerFrameStep >= 3 || playerMode != 12)
playerX += playerAddX;
playerY += playerAddY;
if(playerMode == 9 && playerFrameStep >= 1 && playerFrameStep < 5)
if(saPlayer.effect == 0)
playerX += 4;
else
playerX -= 4;
if(playerX < 0)
playerX = 0;
else
if(bossStage && playerX > 152)
playerX = 152;
GenCurMap();
frameStep = 0;
if(frameStep % 2 == 0)
processMoveAdd();
int tempInt = checkFloor(playerX, playerY, 8, playerAddY);
if(tempInt == 2)
{
if(!bossStage)
{
levelFinish = 1;
playerMode = 1;
playerFrameStep = 0;
}
} else
if(tempInt < 0)
{
if(!playerJump)
{
playerJump = true;
playerAddY = 1;
playerMode = 1;
playerFrameStep = 0;
} else
if(playerY > 128)
{
processHPDown(2);
playerDie = 20;
playerY = 1;
}
} else
{
processFloor();
}
if(playerJump)
playerAddY++;
processCheckChonME();
if(playerMode == 2)
playerAtt = false;
if(playerAtt && frameStep == 0)
{
if(processCheckAttack() == 1)
playerNextFight++;
playerAtt = false;
}
processCheckShot();
processOrder();
if(bossStage)
processBossStage();
}
break;
case 11: // '\013'
if(System.currentTimeMillis() - gameTime <= 50L)
break;
gameTime = System.currentTimeMillis();
startStage++;
if(startStage >= 60)
levelFinish = 2;
break;
}
}
private void processFinish()
{
if(levelFinish == 1)
{
if(System.currentTimeMillis() - gameTime > 50L)
{
playerX += 3;
playerMode = 1;
playerFrameStep += playerFrameStep >= 3 ? -3 : 1;
}
if(playerX >= mapSizeX << 4)
levelFinish = 2;
} else
if(levelFinish > 1)
{
levelFinish += 2;
if(levelFinish >= 20)
if(gameMode == 10)
{
curLevel++;
if(parent.playSound > 0 && gameMusic != null)
try
{
gameMusic.close();
}
catch(Exception ioe) { }
initLevel(curLevel);
} else
if(gameMode == 11)
{
levelFinish = 0;
startLevel = 60;
gameMode = 10;
loadSound(mapSound[curLevel], true);
}
}
}
private void processOrder()
{
for(int j = 0; j < 20; j++)
characterOrder[j] = 0;
int maxDraw = 0;
for(int i = 0; i < maxMonster + 5; i++)
if(monsterM[i] > 0 && monsterX[i] + curMapX > -64 && monsterX[i] + curMapX < 240 && monsterT[i] > 0)
{
characterOrder[maxDraw] = (byte)(i + 1);
maxDraw++;
}
for(int j = 0; j < maxDraw - 1; j++)
{
for(int i = j; i < maxDraw; i++)
if(monsterY[characterOrder[i] - 1] < monsterY[characterOrder[j] - 1])
{
byte tempByte = characterOrder[i];
characterOrder[i] = characterOrder[j];
characterOrder[j] = tempByte;
}
}
}
private void processEffectMove()
{
for(int i = 0; i < 5; i++)
{
if(playerShotT[i] > 0)
{
if((playerShotT[i] & 0x10) >> 4 == 0)
playerShotX[i] += 8;
else
playerShotX[i] -= 8;
if(playerShotX[i] + curMapX >= 176)
playerShotT[i] = 0;
else
if(playerShotX[i] + curMapX <= -24)
playerShotT[i] = 0;
}
if(effectT[i] > 0)
if(effectT[i] % 3 == 0)
effectT[i] = 0;
else
effectT[i]++;
}
}
private void addEffect(int x, int y, int type)
{
for(int i = 0; i < 5; i++)
if(effectT[i] == 0)
{
type--;
effectX[i] = (short)x;
effectY[i] = (short)(y - 5);
effectT[i] = (byte)(type * 3 + 1);
i = 5;
}
}
private void processCheckShot()
{
int targetH = 0;
for(int i = 0; i < 5; i++)
if(playerShotT[i] > 0)
{
int shotX = playerShotX[i] + 4;
int shotY = playerShotY[i] - 14;
int shotW = 12;
int shotH = 13;
for(int j = 0; j < maxMonster + 5; j++)
if(monsterM[j] > 0 && (monsterM[j] & 0xf) != 2 && (monsterM[j] & 0xf) < 6 && monsterX[j] + curMapX > -24 && monsterX[j] + curMapX < 176)
{
int targetX = monsterX[j] - 4;
int targetW = 16;
switch(monsterT[j])
{
case 1: // '\001'
targetH = 11;
break;
case 2: // '\002'
targetH = 17;
break;
case 3: // '\003'
case 4: // '\004'
case 7: // '\007'
case 8: // '\b'
targetH = 21;
break;
case 5: // '\005'
case 50: // '2'
targetH = 18;
break;
case 6: // '\006'
targetH = 21;
break;
case 25: // '\031'
case 26: // '\032'
case 27: // '\033'
case 28: // '\034'
targetH = 5;
break;
case 31: // '\037'
targetH = 16;
break;
case 51: // '3'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -