📄 enternamescreen.java
字号:
import java.awt.*;
import java.awt.event.*;
public class EnterNameScreen extends GameScreen
{
private Image fullBackground;
private Image splashBackground;
private Image panelBackground;
private SoundManager soundManager;
private TextSprite playerName;
private int lastChar;
public EnterNameScreen(GameApplet gameApplet)
{
super(gameApplet);
GameMedia media = gameApplet.getGameMedia();
fullBackground = media.loadImage("background.jpg");
splashBackground = media.loadImage("splash.jpg");
panelBackground = media.loadImage("void_panel.jpg");
soundManager = (SoundManager)gameApplet.getGameContext().getObject("soundManager");
GameFont font = (GameFont)gameApplet.getGameContext().getObject("bubbleFont");
this.addSprite(new TextSprite(new Rectangle(226, 380, 184, 22), font, "ENTER YOUR NAME"));
playerName = new TextSprite(new Rectangle(323, 418, 246, 22), font, new String());
this.addSprite(playerName);
}
public void initBackground()
{
addToBackground(fullBackground, new Point(0, 0));
addToBackground(splashBackground, new Point(116, 0));
addToBackground(panelBackground, new Point(178, 373));
}
private boolean isValidChar(int code)
{
if (code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)
{
return true;
}
if (code>=KeyEvent.VK_A && code<=KeyEvent.VK_Z)
{
return true;
}
if (code == KeyEvent.VK_SPACE)
{
return true;
}
return false;
}
public void play(int[] keyCodes, Point mouseCoord, boolean leftButton, boolean rightButton)
{
if (keyCodes.length == 1)
{
if (keyCodes[0] != lastChar)
{
lastChar = keyCodes[0];
if (isValidChar(keyCodes[0]))
{
if (playerName.getText().length() < 16)
{
soundManager.playSound(FrozenBubble.SOUND_TYPEWRITER);
playerName.addCharacter((char)keyCodes[0]);
int moveRight = playerName.getFont().charSize(playerName.getText().charAt(playerName.getText().length()-1));
moveRight >>= 1;
playerName.relativeMove(new Point(-moveRight-1, 0));
}
}
else if (keyCodes[0] == KeyEvent.VK_BACK_SPACE ||
keyCodes[0] == KeyEvent.VK_DELETE)
{
if (playerName.getText().length() > 0)
{
soundManager.playSound(FrozenBubble.SOUND_TYPEWRITER);
int moveRight = playerName.getFont().charSize(playerName.getText().charAt(playerName.getText().length()-1));
moveRight >>= 1;
playerName.removeLastChar();
playerName.relativeMove(new Point(moveRight+1, 0));
}
}
else if (keyCodes[0] == KeyEvent.VK_ESCAPE)
{
soundManager.playSound(FrozenBubble.SOUND_TYPEWRITER);
this.getGameApplet().setCurrentScreen(new SplashScreen(getGameApplet()));
}
else if (keyCodes[0] == KeyEvent.VK_ENTER)
{
soundManager.playSound(FrozenBubble.SOUND_TYPEWRITER);
String outputName = playerName.getText().toLowerCase().trim();
if (outputName.length() > 0)
{
((HighscoreManager)this.getGameApplet().getGameContext().getObject("highscoreManager")).sendRecord(outputName);
}
this.getGameApplet().setCurrentScreen(new SplashScreen(getGameApplet()));
}
}
}
else if (keyCodes.length == 0)
{
lastChar = 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -