cicaprojekt/cicaprojekt/Control.java

108 lines
3.6 KiB
Java

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 <code>KeyEvent</code> 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?");
}
}