cicaprojekt/cicaprojekt/PlayerBaseDrawer.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();
}
}