📄 gamescreen.java
字号:
for(int i = 0; i < presentNumWords; i++)
if(wordGuessed[i])
{
g.setColor(255);
g.drawString(presentWords[i].toLowerCase(), wordX[i], wordY[i], 20);
} else
{
g.setColor(0);
for(int j = 0; j < presentWords[i].length(); j++)
g.drawString("_", wordX[i] + j * 7, wordY[i], 20);
}
g.setColor(0);
int mum = timer.getTime() - timer.getTime() % 100;
try
{
if(mum % 1000 == 0)
{
n++;
n = n % 2;
characterSprite.setFrame(n);
}
if(yCharacter <= 94 && !not)
{
down = true;
up = false;
yCharacter += 4;
} else
if(yCharacter >= 119 && !not)
{
up = true;
down = false;
yCharacter -= 4;
} else
if(up && !down && !not)
yCharacter -= 4;
else
if(!up && down && !not)
yCharacter += 4;
if(yCharacter >= 112)
pumpSprite.setFrame(0);
else
pumpSprite.setFrame(1);
characterSprite.setY(yCharacter);
}
catch(Exception e) { }
characterSprite.paint(g);
pumpSprite.paint(g);
balloonSprite.paint(g);
int num = firstTime / balloonSprite.getNumFrames() - firstTime % 100;
num -= num % 100;
try
{
if(mum % num == 0)
{
balloonFrame++;
if(balloonFrame < balloonSprite.getNumFrames())
balloonSprite.setFrame(balloonFrame);
}
for(int i = 0; i < 6; i++)
{
blankSprite[i].setFrame(blankFrame[i]);
blankSprite[i].paint(g);
letterSprite[i].setFrame(letterFrame[i]);
letterSprite[i].paint(g);
}
if(blink)
{
g.setColor(0x83b9ff);
if(cursorPosition % 2 == 1)
g.fillArc(90 + cursorPosition * 13, 56, 12, 20, 0, 360);
else
g.fillArc(90 + cursorPosition * 13, 60, 12, 20, 0, 360);
blink = !blink;
} else
{
letterSprite[cursorPosition].setFrame(letterFrame[cursorPosition]);
blink = !blink;
}
if(not && notCounter < 10)
{
timer.pause();
notCounter++;
g.drawImage(xImage, 40, 55, 16);
if(Resources.withSound)
try
{
wrongSound.play(1);
}
catch(Exception e)
{
e.printStackTrace();
}
} else
if(notCounter >= 10)
{
timer.resume();
notCounter = 0;
not = false;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void gameOver()
{
Resources.level = level + 1;
Resources.score = playerScore;
if(!saved)
{
high = saveScore();
for(int i = 0; i < 5; i++);
if(high)
{
Record.delete();
Record.open();
Record.save();
Record.load();
Record.close();
}
saved = true;
}
}
private void paintGameOver(Graphics g)
{
for(int i = 0; i < presentNumWords; i++)
{
if(wordGuessed[i])
{
g.setColor(255);
g.setFont(Resources.font1);
} else
{
g.setColor(0xff0000);
g.setFont(Resources.font2);
}
g.drawString(presentWords[i].toLowerCase(), wordX[i], wordY[i], 20);
}
g.drawImage(burst, 116, 145, 16);
g.setFont(Resources.font1);
g.setColor(0xff0000);
try
{
characterSprite.setFrame(2);
characterSprite.setX(90);
characterSprite.setY(119);
characterSprite.paint(g);
pumpSprite.setFrame(0);
pumpSprite.paint(g);
for(int i = 0; i < 6; i++)
{
blankFrame[i] = 26;
letterFrame[i] = 27;
blankSprite[i].setFrame(blankFrame[i]);
blankSprite[i].paint(g);
letterSprite[i].setFrame(letterFrame[i]);
letterSprite[i].paint(g);
}
gamePaused = false;
if(!created)
{
GameOverCanvas goc = new GameOverCanvas(parent, this);
// Timer timer2 = new Timer();
// TimerTask tt = timer2. new TimerTask() {
//
// public void run()
// {
// Thread _tmp = t;
// Thread.yield();
// t = null;
// presentWordSet = null;
// parent.setDisplayable(goc);
// timer2.cancel();
// }
//
// };
// timer2.schedule(tt, 3000L);
// created = true;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void paintNextLevel(Graphics g)
{
n = 0;
m = 0;
try
{
characterSprite.setFrame(0);
characterSprite.setX(90);
characterSprite.setY(114);
characterSprite.paint(g);
pumpSprite.paint(g);
g.drawImage(burst, 116, 145, 16);
}
catch(Exception e)
{
e.printStackTrace();
}
if(!notRepaint)
{
try
{
for(int i = 0; i < 6; i++)
{
blankFrame[i] = 26;
letterFrame[i] = 27;
blankSprite[i].setFrame(blankFrame[i]);
blankSprite[i].paint(g);
letterSprite[i].setFrame(letterFrame[i]);
letterSprite[i].paint(g);
}
}
catch(Exception e) { }
for(int i = 0; i < presentNumWords; i++)
{
if(wordGuessed[i])
{
g.setColor(255);
g.setFont(Resources.font1);
} else
{
g.setColor(0xff0000);
g.setFont(Resources.font2);
}
g.drawString(presentWords[i].toLowerCase(), wordX[i], wordY[i], 20);
}
g.setFont(Resources.font1);
g.setColor(0xff0000);
running = false;
if(isNextLevel && !nextLevelOnce)
{
if(Resources.withSound)
try
{
nextLevelSound.play(1);
}
catch(Exception e)
{
e.printStackTrace();
}
// Timer timer2 = new Timer();
// TimerTask tt = timer2. new TimerTask() {
//
// public void run()
// {
// try
// {
// nextLevel();
// }
// catch(Exception e) { }
// isNextLevel = false;
// nextLevelOnce = false;
// timer2.cancel();
// }
//
// };
// timer2.schedule(tt, 5000L);
// nextLevelOnce = true;
}
} else
{
g.setFont(Resources.font1);
g.setColor(255);
g.drawString("score", 30, 130, 20);
g.drawString("level", 30, 145, 20);
g.setFont(Resources.font2);
g.setColor(0xff0000);
g.drawString(playerScore + "", 60, 130, 20);
g.drawString(level + "", 60, 145, 20);
g.setFont(Resources.font4);
g.setColor(0);
g.drawString(" CONGRATULATIONS!", 5, 30, 20);
g.drawString("You qualify to the", 10, 50, 20);
g.drawString("Next Level", 20, 70, 20);
}
running = true;
}
protected void keyPressed(int keyCode)
{
if(isNextLevel || notRepaint)
return;
if(gameOver)
{
gamePaused = false;
if(high)
{
GameOverCanvas goc = new GameOverCanvas(parent, this);
parent.setDisplayable(goc);
} else
{
parent.setDisplayable(menu);
}
}
int gameAction = getGameAction(keyCode);
if(keyCode == -6 || keyCode == -7)
{
gamePaused = true;
menu.init(parent);
parent.setDisplayable(menu);
pause();
}
switch(keyCode)
{
case 55: // '7'
doTwist();
break;
case 56: // '8'
doClear();
break;
case 48: // '0'
doEnter();
break;
case 57: // '9'
doBack();
break;
}
switch(gameAction)
{
case 8: // '\b'
doPlayerMove();
doMoveCursor(1);
break;
case 5: // '\005'
doMoveCursor(1);
break;
case 2: // '\002'
doMoveCursor(-1);
break;
}
}
private void doPlayerMove()
{
if(letterCounter < presentNumLetters)
{
String s = "";
s = String.valueOf((char)(letterFrame[cursorPosition] + 65));
playerWord = playerWord + s;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -