|
|
@@ -27,6 +27,9 @@ public class PlayState extends State {
|
|
|
private int timeleftpercent, direction, shoot;
|
|
|
private String overlayText;
|
|
|
|
|
|
+ public String chatMessage = "";
|
|
|
+ public boolean typing = false;
|
|
|
+
|
|
|
public PlayState(GameStateManager gsm) {
|
|
|
super("play", gsm);
|
|
|
player1 = new Player(Images.getImage(ImageType.PLAYER1), 40, 550, "");
|
|
|
@@ -41,6 +44,10 @@ public class PlayState extends State {
|
|
|
player2 = new Player(Images.getImage(ImageType.PLAYER2), 90, 550, p2);
|
|
|
infopanel = new InfoPanel(this);
|
|
|
balls = new ArrayList<Ball>();
|
|
|
+
|
|
|
+ typing = false;
|
|
|
+ chatMessage = "";
|
|
|
+ infopanel.clearChat();
|
|
|
}
|
|
|
|
|
|
/* INIT AND EXIT */
|
|
|
@@ -130,40 +137,74 @@ public class PlayState extends State {
|
|
|
this.timeleftpercent = timeleftpercent;
|
|
|
}
|
|
|
|
|
|
- public void setOverlayText(String text){
|
|
|
+ public void setOverlayText(String text) {
|
|
|
this.overlayText = text;
|
|
|
}
|
|
|
+
|
|
|
/* EVENTS */
|
|
|
@Override
|
|
|
public void keyPressed(KeyEvent e) {
|
|
|
- switch (e.getKeyCode()) {
|
|
|
- case KeyEvent.VK_RIGHT:
|
|
|
- direction = 1;
|
|
|
- break;
|
|
|
- case KeyEvent.VK_LEFT:
|
|
|
- direction = -1;
|
|
|
- break;
|
|
|
- case KeyEvent.VK_SPACE:
|
|
|
- shoot = 1;
|
|
|
- break;
|
|
|
+ if (!typing) {
|
|
|
+ switch (e.getKeyCode()) {
|
|
|
+ case KeyEvent.VK_RIGHT:
|
|
|
+ direction = 1;
|
|
|
+ break;
|
|
|
+ case KeyEvent.VK_LEFT:
|
|
|
+ direction = -1;
|
|
|
+ break;
|
|
|
+ case KeyEvent.VK_SPACE:
|
|
|
+ shoot = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ switch (e.getKeyCode()) {
|
|
|
+ case KeyEvent.VK_ENTER:
|
|
|
+ if (typing) {
|
|
|
+ System.out.println("\nSend");
|
|
|
+ typing = false;
|
|
|
+ if(chatMessage.length()>0)
|
|
|
+ nwc.sendChatMessage(chatMessage);
|
|
|
+ chatMessage = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
nwc.sendInput(direction, shoot);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void keyReleased(KeyEvent e) {
|
|
|
- switch (e.getKeyCode()) {
|
|
|
- case KeyEvent.VK_RIGHT:
|
|
|
- direction = 0;
|
|
|
- case KeyEvent.VK_LEFT:
|
|
|
- direction = 0;
|
|
|
- break;
|
|
|
- case KeyEvent.VK_SPACE:
|
|
|
- shoot = 0;
|
|
|
- break;
|
|
|
- case KeyEvent.VK_ESCAPE:
|
|
|
- gsm.setState("menu");
|
|
|
- break;
|
|
|
+ if (!typing)
|
|
|
+ {
|
|
|
+ switch (e.getKeyCode()) {
|
|
|
+ case KeyEvent.VK_RIGHT:
|
|
|
+ direction = 0;
|
|
|
+ case KeyEvent.VK_LEFT:
|
|
|
+ direction = 0;
|
|
|
+ break;
|
|
|
+ case KeyEvent.VK_SPACE:
|
|
|
+ shoot = 0;
|
|
|
+ break;
|
|
|
+ case KeyEvent.VK_ESCAPE:
|
|
|
+ gsm.setState("menu");
|
|
|
+ break;
|
|
|
+ case KeyEvent.VK_C:
|
|
|
+ typing = true;
|
|
|
+ System.out.print("Typing: ");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(e.getKeyCode() != KeyEvent.VK_BACK_SPACE)
|
|
|
+ {
|
|
|
+ chatMessage += e.getKeyChar();
|
|
|
+ System.out.println(chatMessage);
|
|
|
+ }
|
|
|
+ else if(e.getKeyCode() == KeyEvent.VK_BACK_SPACE && chatMessage.length() > 0)
|
|
|
+ {
|
|
|
+ chatMessage = chatMessage.substring(0, chatMessage.length()-1);
|
|
|
+ System.out.print(chatMessage);
|
|
|
+ }
|
|
|
}
|
|
|
nwc.sendInput(direction, shoot);
|
|
|
}
|
|
|
@@ -171,4 +212,8 @@ public class PlayState extends State {
|
|
|
@Override
|
|
|
public void keyTyped(KeyEvent e) {
|
|
|
};
|
|
|
+
|
|
|
+ public void addChatMessage(String msg) {
|
|
|
+ infopanel.addChatMessage(msg);
|
|
|
+ }
|
|
|
}
|