77 lines
2.0 KiB
Java
77 lines
2.0 KiB
Java
package cicaprojekt;
|
|
|
|
import java.io.IOException;
|
|
|
|
/**
|
|
* Egy személy kirajzolásáért felelős osztály.
|
|
*/
|
|
public class PlayerBaseDrawer extends AbstractDrawer implements Drawer {
|
|
/**
|
|
* Egy személypéldány, amelyet kirajzolunk.
|
|
*/
|
|
private PlayerBase playerbase;
|
|
|
|
/**
|
|
* Az osztály konstruktora. A kapott személypéldányhoz kirajzol
|
|
* egy személyt, alapértelmezett esetben a Replikátort.
|
|
*
|
|
* @param pb a kapott személypéldány
|
|
* @throws IOException Ha nem található a kép.
|
|
*/
|
|
public PlayerBaseDrawer(PlayerBase pb) throws IOException {
|
|
super("Replicator_Down.png");
|
|
playerbase = pb;
|
|
}
|
|
|
|
/**
|
|
* A személy képét megváltoztatja annak megfelelően, hogy merre néz, illetve,
|
|
* hogy él-e még.
|
|
* Alapesetben a Replikátor különböző nézeteit kezeli le.
|
|
*
|
|
* @throws IOException Ha nem találhatóak a képek.
|
|
*/
|
|
@Override
|
|
public void draw() throws IOException {
|
|
switch(playerbase.name){
|
|
case "Replicator":
|
|
switch(playerbase.facingDirection){
|
|
case NORTH:
|
|
changeImage("Replicator_Up.png");
|
|
break;
|
|
case EAST:
|
|
changeImage("Replicator_Right.png");
|
|
break;
|
|
case SOUTH:
|
|
changeImage("Replicator_Down.png");
|
|
break;
|
|
default:
|
|
changeImage("Replicator_Left.png");
|
|
break;
|
|
}
|
|
}
|
|
if(playerbase.isDestroyed())
|
|
changeImage("Empty.png");
|
|
}
|
|
|
|
/**
|
|
* A személy x-koordinátájával tér vissza.
|
|
*
|
|
* @return x-koordináta
|
|
*/
|
|
@Override
|
|
public int getTileX() {
|
|
return playerbase.currentTile.getX();
|
|
}
|
|
|
|
/**
|
|
* A személy y-koordinátájával tér vissza.
|
|
*
|
|
* @return y-koordináta
|
|
*/
|
|
@Override
|
|
public int getTileY() {
|
|
return playerbase.currentTile.getY();
|
|
}
|
|
|
|
}
|