package cicaprojekt; import java.io.IOException; /** * Egy játékos kirajzolásáért felelős függvény. */ public class PlayerDrawer extends AbstractDrawer implements Drawer { /** * Egy játékospéldány, amelyet kirajzolunk. */ private Player player; /** * Az osztály konstruktora. A kapott játékospéldányhoz kirajzol * egy játékost, alapértelmezett esetben O'Neill ezredest. * * @param p a kapott játékospéldány * @throws IOException Ha nem található a kép. */ public PlayerDrawer(Player p) throws IOException { super("ONeill_Down.png"); player = p; } /** * A játékos képét megváltoztatja annak megfelelően, hogy merre néz, él-e még, * illetve, hogy van-e nála doboz. * * @throws IOException Ha nem találhatóak a képek. */ @Override public void draw() throws IOException { if (player.hasBox()) { switch (player.name) { case "O'Neill": switch (player.facingDirection) { case NORTH: changeImage("ONeill_Up_Box.png"); break; case EAST: changeImage("ONeill_Right_Box.png"); break; case SOUTH: changeImage("ONeill_Down_Box.png"); break; default: changeImage("ONeill_Left_Box.png"); break; } break; default: switch (player.facingDirection) { case NORTH: changeImage("Jaffa_Up_Box.png"); break; case EAST: changeImage("Jaffa_Right_Box.png"); break; case SOUTH: changeImage("Jaffa_Down_Box.png"); break; default: changeImage("Jaffa_Left_Box.png"); break; } break; } } else { switch (player.name) { case "O'Neill": switch (player.facingDirection) { case NORTH: changeImage("ONeill_Up.png"); break; case EAST: changeImage("ONeill_Right.png"); break; case SOUTH: changeImage("ONeill_Down.png"); break; default: changeImage("ONeill_Left.png"); break; } break; default: switch (player.facingDirection) { case NORTH: changeImage("Jaffa_Up.png"); break; case EAST: changeImage("Jaffa_Right.png"); break; case SOUTH: changeImage("Jaffa_Down.png"); break; default: changeImage("Jaffa_Left.png"); break; } break; } } if(player.isDestroyed()) changeImage("Empty.png"); } /** * A játékos x-koordinátájával tér vissza. * * @return x-koordináta */ @Override public int getTileX() { return player.getCurrentTile().getX(); } /** * A játékos y-koordinátájával tér vissza. * * @return y-koordináta */ @Override public int getTileY() { return player.getCurrentTile().getY(); } }