📄 maincanvas.java.bak
字号:
if(playerShowStatus[int4] > clockTicks && playerHealth[int4] >= 0)
{
int l1 = playerX[int4] - screenImageLeft;
int j4 = playerY[int4] - screenImageTop;
g.setClip(l1 - 3, j4 + 16, 21, 7);
g.setColor(0);
g.fillRect(l1 - 3, j4 + 16, 21, 7);
g.setColor(0xff0000);
g.fillRect(l1 + 5, j4 + 18, playerHealth[int4] * 4, 3);
g.setClip(l1 - 2, j4 + 17, 5, 5);
g.drawImage(symbolsImage, l1 - 2 - playerType[int4] * 5, j4 + 17, 20);
g.setClip(l1 + 4, j4 + 17, 13, 5);
if(int4 == currentPlayer)
g.drawImage(symbolsImage, l1 - 35, j4 + 17, 20);
else
g.drawImage(symbolsImage, l1 - 22, j4 + 17, 20);
}
g.setClip(0, 0, width, height);
g.drawImage(statusBar, 1, height - 14 - 1, 20);
if(playerProtected[currentPlayer] > clockTicks)
{
g.setClip(67, height - 14 - 1, 12, 14);
g.drawImage(symbolsImage, -15, height - 17, 20);
g.setClip(0, 0, width, height);
}
if(showOrders > clockTicks)
{
g.setColor(0xffffff);
g.setFont(font);
if(takeCover)
g.drawString("Orders: Take Cover", width - 2, height - fontHeight, 24);
else
g.drawString("Orders: Follow Me", width - 2, height - fontHeight, 24);
}
} else
{
g.setColor(0);
g.fillRect(0, 0, width, height);
g.drawImage(splashImage, halfWidth, halfHeight, 3);
g.setColor(0xffffff);
g.setFont(largeFont);
if(screenType >= 100)
{
g.drawString(Strings.helpTitles[screenType - 100], halfWidth, 4, 17);
ShowButtons(g, null, "BACK");
g.setFont(font);
PrintTextStrings(g);
} else
{
switch(screenType)
{
case 2: // '\002'
default:
break;
case 0: // '\0'
if(frameCount == 2)
g.drawImage(titleImage, halfWidth, halfHeight, 3);
break;
case 1: // '\001'
g.drawImage(titleImage, halfWidth, 4, 17);
g.drawImage(menuImage, halfWidth, menuGraphicHeight, 17);
int k4 = menuGraphicHeight + menuLineHeight * (menuSelection - menuStart);
g.setClip(4, k4, 16, 16);
g.drawImage(unitImage, 4 - (frameCount << 4), k4 - 80, 20);
g.setClip(width - 4 - 16, k4, 16, 16);
g.drawImage(unitImage, width - 4 - 16 - (frameCount << 4), k4 - 48, 20);
break;
case 3: // '\003'
g.drawString("Help", halfWidth, 4, 17);
ShowButtons(g, "SELECT", "BACK");
PrintMenuStrings(g);
break;
case 4: // '\004'
case 5: // '\005'
g.drawString("Options", halfWidth, 4, 17);
ShowButtons(g, "SELECT", "BACK");
PrintMenuStrings(g);
break;
case 13: // '\r'
g.drawString("Reset Game", halfWidth, 4, 17);
g.drawString("Are you sure?", halfWidth, halfHeight, 17);
ShowButtons(g, "CONFIRM", "BACK");
break;
case 6: // '\006'
g.drawImage(titleImage, halfWidth, 4, 17);
ShowButtons(g, "SELECT", "BACK");
PrintMenuStrings(g);
break;
case 7: // '\007'
case 8: // '\b'
g.drawString(Strings.missionTitle[missionNumberCurrent], halfWidth, 4, 17);
ShowButtons(g, "CONTINUE", screenType != 7 ? "MENU" : "BACK");
g.setFont(font);
PrintTextStrings(g);
break;
case 11: // '\013'
g.drawString(Strings.missionTitle[missionNumberCurrent], halfWidth, 4, 17);
if(missionNumberCurrent < 9)
ShowButtons(g, "CONTINUE", "MENU");
else
ShowButtons(g, null, "MENU");
g.setFont(font);
PrintTextStrings(g);
break;
case 12: // '\f'
ShowButtons(g, "RESTART", "MENU");
g.drawString("All units killed", halfWidth, halfHeight, 17);
break;
case 9: // '\t'
int i2 = halfWidth - 22;
int l4 = 4 + largeFontHeight + 4;
for(int i5 = 0; i5 < 3; i5++)
{
g.setClip(i2, l4, 12, 12);
if(playerType[i5] >= 0)
g.drawImage(symbolsImage, i2 - 12 * playerType[i5], l4 - 5, 20);
else
g.drawImage(symbolsImage, i2 - 60, l4 - 5, 20);
i2 += 16;
}
i2 = halfWidth - 24;
l4 += 22;
g.setClip(i2, l4, 48, 72);
g.drawImage(selectImage, i2 - 48 * frameCount, l4, 20);
g.setClip(i2 - 15, l4 + 32, 5, 9);
g.drawImage(arrowsImage, i2 - 15, l4 + 28, 20);
g.setClip(i2 + 58, l4 + 32, 5, 9);
g.drawImage(arrowsImage, i2 + 54, l4 + 28, 20);
g.setClip(0, 0, width, height);
g.drawString("Select Squad", halfWidth, 4, 17);
if(playerType[0] == frameCount || playerType[1] == frameCount || playerType[2] == frameCount)
g.drawString("DESELECT", 4, height - 4 - largeFontHeight, 20);
else
if(playerType[0] < 0 || playerType[1] < 0 || playerType[2] < 0)
g.drawString("SELECT", 4, height - 4 - largeFontHeight, 20);
if(playerType[0] >= 0 && playerType[1] >= 0 && playerType[2] >= 0)
g.drawString("CONTINUE", width - 4, height - 4 - largeFontHeight, 24);
g.setFont(font);
i2 = halfWidth;
l4 += 82;
g.drawString(Strings.playerName[frameCount], i2, l4, 17);
g.drawString("Armor: " + Strings.armourLevel[INITIAL_HEALTH[frameCount] - 1], i2, l4 + fontHeight + 4, 17);
g.drawString("Special: " + Strings.playerSpecialName[frameCount], i2, l4 + 2 * fontHeight + 4, 17);
break;
case 10: // '\n'
g.drawString("Select Squad", halfWidth, 4, 17);
ShowButtons(g, "CONFIRM", "CHANGE");
for(int j5 = 0; j5 < 3; j5++)
{
g.setClip((halfWidth - 80) + 54 * j5, halfHeight - 24, 48, 72);
g.drawImage(selectImage, ((halfWidth - 80) + 54 * j5) - 48 * playerType[j5], halfHeight - 24, 20);
}
break;
case 14: // '\016'
g.drawImage(titleImage, halfWidth, 4, 17);
ShowButtons(g, "CONTINUE", null);
g.setFont(font);
PrintTextStrings(g);
break;
}
}
}
}
private void PrintMenuStrings(Graphics g)
{
for(int i = 0; i < menuLines; i++)
g.drawString(menuStringArray[(menuStart + i) - 1], halfWidth, menuGraphicHeight + 1 + menuLineHeight * i, 17);
int j = menuGraphicHeight + menuLineHeight * (menuSelection - menuStart);
g.setClip(4, j, 16, 16);
g.drawImage(unitImage, 4 - (frameCount << 4), j - 80, 20);
g.setClip(width - 4 - 16, j, 16, 16);
g.drawImage(unitImage, width - 4 - 16 - (frameCount << 4), j - 48, 20);
if(menuStart > 1 || menuStart + menuLines <= menuLength)
{
g.setClip(halfWidth - 3, height - 4 - 9, 7, 4);
g.drawImage(arrowsImage, halfWidth - 4, height - 4 - (menuStart != 1 ? 13 : 9), 20);
g.setClip(halfWidth - 3, height - 4 - 4, 7, 4);
g.drawImage(arrowsImage, halfWidth - 4, height - 4 - (menuStart + menuLines <= menuLength ? 13 : 17), 20);
}
}
private void PrintTextStrings(Graphics g)
{
for(int i = 0; i < menuLines; i++)
g.drawString(menuStringArray[(menuStart + i) - 1], 4, menuGraphicHeight + 1 + menuLineHeight * i, 20);
if(menuStart > 1 || menuStart + menuLines <= menuLength)
{
int j = menuLines * menuLineHeight;
g.drawRect(width - 4 - 7, menuGraphicHeight + 5, 6, j - 11);
if(menuLines >= menuLength)
g.fillRect(width - 4 - 5, menuGraphicHeight + 7, 3, j - 14);
else
g.fillRect(width - 4 - 5, menuGraphicHeight + ((menuStart - 1) * (j - 14)) / menuLength + 7, 3, (menuLines * (j - 14)) / menuLength);
g.setClip(width - 4 - 7, menuGraphicHeight, 7, 4);
g.drawImage(arrowsImage, width - 4 - 8, menuStart != 1 ? menuGraphicHeight - 4 : ((int) (menuGraphicHeight)), 20);
g.setClip(width - 4 - 7, (menuGraphicHeight + j) - 4, 7, 4);
g.drawImage(arrowsImage, width - 4 - 8, (menuGraphicHeight + j) - (menuStart + menuLines <= menuLength ? 13 : 17), 20);
}
}
private void ShowButtons(Graphics g, String s, String s1)
{
if(s != null)
g.drawString(s, 4, height - 4 - largeFontHeight, 20);
if(s1 != null)
g.drawString(s1, width - 4, height - 4 - largeFontHeight, 24);
}
private void CheckTextUpAndDown(int i)
{
if(i == 1 && menuStart > 1)
menuStart--;
else
if(i == 6 && menuStart + menuLines <= menuLength)
menuStart++;
}
private void CheckMenuUpAndDown(int i)
{
if(i == 1 && menuSelection > 1)
{
menuSelection--;
if(menuSelection < menuStart)
menuStart--;
repaint();
} else
if(i == 6 && menuSelection < menuLength)
{
menuSelection++;
if(menuSelection >= menuStart + menuLines)
menuStart++;
repaint();
}
}
private void UpdateStatusBar()
{
Graphics g = statusBar.getGraphics();
g.setColor(0);
g.fillRect(0, 0, 66, 14);
g.setClip(1, 1, 12, 12);
g.drawImage(symbolsImage, 1 - 12 * playerType[currentPlayer], -4, 20);
g.setClip(0, 0, 66, 14);
for(int i = 0; i < 3; i++)
{
g.setColor(0xffffff);
g.drawRect(14 + i * 9, 1, 9, 11);
if(playerHealth[currentPlayer] > i)
{
g.setColor(0xff0000);
g.fillRect(15 + i * 9, 2, 8, 10);
}
}
g.setColor(0xffffff);
g.fillRect(43, 1, 22, 12);
if(playerType[currentPlayer] != 4 && playerType[currentPlayer] != 3)
{
g.setClip(43, 2, 10, 10);
g.drawImage(specialImage, -21, 2 - 10 * WEAPON_TYPE[playerType[currentPlayer]], 20);
g.setClip(0, 0, 66, 14);
g.setColor(0);
g.setFont(font);
g.drawString("" + playerSpecial[currentPlayer], 64, 1, 24);
}
}
private void SetInvisibility(int int0, boolean flag)
{
if(flag)
{
if(int0 == currentPlayer)
{
Graphics g = statusBar.getGraphics();
g.setClip(43, 2, 10, 10);
g.drawImage(symbolsImage, -29, -4, 20);
}
playerSpecial[int0] = clockTicks + 180;
} else
{
if(int0 == currentPlayer)
{
Graphics g1 = statusBar.getGraphics();
g1.setClip(43, 2, 10, 10);
g1.setColor(0xffffff);
g1.fillRect(43, 2, 10, 10);
}
playerSpecial[int0] = 0;
}
}
private void RedrawSceneryAbove(Graphics g, int i, int j, int k, int l, int int0)
{
for(int i1 = j >> 4; i1 <= j + l >> 4; i1++)
if(i1 >= 0 && i1 < 128)
{
for(int j1 = i >> 4; j1 <= i + k >> 4; j1++)
if(j1 >= 0 && j1 < 11 && TileBlockData[MapData[i1][j1]] == 2)
{
g.setClip((j1 << 4) - screenImageLeft, (i1 << 4) - screenImageTop, 16, 16);
int int1 = TileTextureData[MapData[i1][j1]];
g.drawImage(tilesImage, (j1 - int1 << 4) - screenImageLeft, (i1 << 4) - screenImageTop, 20);
if(int0 >= 0 && int1 != 28 && playerHealth[int0] >= 0 && squareMax < 30)
{
squarePlayer[squareMax] = int0;
squareRow[squareMax] = (int)i1;
squareCol[squareMax] = (int)j1;
squareMax++;
}
}
}
}
protected void keyPressed(int i)
{
if(screenType == 2)
{
nextKeyCode = i;
} else
{
int j = getGameAction(i);
if(screenType >= 100)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -