package cicaprojekt; import javax.swing.*; import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; /** * A billentyűlenyomás esemenyét, illetve a képek be nem töltését lekezelő osztály. */ public class Control { /** * A billentyűlenyomás eseményét kezelő osztály. */ public static class KeyHandler extends KeyAdapter{ /** * Az egyes lenyomott billentyűk lenyomására a megfelelő * függvényt meghívja, majd frissíti a megjelenítést. * * @param e egy KeyEvent eseményt, * amely a billentyűlenyomást reprezentálja * @see Game#moveONeill(Direction) * @see Game#rotateOneillLeft() * @see Game#rotateOneillRight() * @see Game#moveJaffa(Direction) * @see Game#rotateJaffaLeft() * @see Game#rotateJaffaRight() * @see Game#boxONeill() * @see Game#boxJaffa() * @see Game#shootStargate(Color) * @see Game#updateDisplay() */ @Override public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); c = Character.toUpperCase(c); switch(c) { case 'W' : Game.instance.moveONeill(Direction.NORTH); break; case 'A' : Game.instance.moveONeill(Direction.WEST); break; case 'S' : Game.instance.moveONeill(Direction.SOUTH); break; case 'D' : Game.instance.moveONeill(Direction.EAST); break; case 'Y' : Game.instance.rotateOneillLeft(); break; case 'X' : Game.instance.rotateOneillRight(); break; case 'I' : Game.instance.moveJaffa(Direction.NORTH); break; case 'J' : Game.instance.moveJaffa(Direction.WEST); break; case 'K' : Game.instance.moveJaffa(Direction.SOUTH); break; case 'L' : Game.instance.moveJaffa(Direction.EAST); break; case 'M' : Game.instance.rotateJaffaLeft(); break; case ',' : Game.instance.rotateJaffaRight(); break; case 'Q' : Game.instance.boxONeill(); break; case 'U' : Game.instance.boxJaffa(); break; case 'E' : Game.instance.shootStargate(Color.YELLOW); break; case 'R' : Game.instance.shootStargate(Color.BLUE); break; case 'O' : Game.instance.shootStargate(Color.RED); break; case 'P' : Game.instance.shootStargate(Color.GREEN); break; } Game.instance.updateDisplay(); } } /** * Akkor hívódik meg, amikor nem sikerül betölteni a megjelenítéshez * szükséges képeket. Ekkor egy felugró panelban egy figyelmeztető * üzenetet ír ki. */ public static void ioErrorMessage(){ JOptionPane.showMessageDialog(null, "Nem sikerült betölteni a dzidzás képeket :( ! Biztos a helyükön vannak?"); } }