134 lines
3.8 KiB
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();
|
|
}
|
|
|
|
}
|