cicaprojekt/cicaprojekt/PlayerDrawer.java

134 lines
3.8 KiB
Java

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();
}
}