import java.util.Vector; public class Wall extends GameObject { protected int koernigGroesse; protected Vector wallTeile = new Vector(2, 2); /** * * @param tankManager * @param x_Koordinate * -(0-59) * @param y_Koordinate * -(0-59) * @param x_Koernig * -Width * @param y_Koernig * -Height * @param wallType */ public Wall(TankManager tankManager, int x_Koordinate, int y_Koordinate, int x_Koernig, int y_Koernig, int wallType) { init(tankManager, x_Koordinate, y_Koordinate, x_Koernig/2, y_Koernig/2, wallType); } protected void init(TankManager tankManager, int x_Koordinate, int y_Koordinate, int x_Koernig, int y_Koernig, int wallType) { this.koernigGroesse = tankManager.koernigkeit; switch (wallType) { case 31: super.init(tankManager, x_Koordinate * tankManager.koernigkeit2, y_Koordinate * tankManager.koernigkeit2, 255, 255, 0, x_Koernig * koernigGroesse, y_Koernig * koernigGroesse, wallType); break; case 32: super.init(tankManager, x_Koordinate * tankManager.koernigkeit2, y_Koordinate * tankManager.koernigkeit2, 0, 139, 0, x_Koernig * koernigGroesse, y_Koernig * koernigGroesse, wallType); break; case 33: super.init(tankManager, x_Koordinate * tankManager.koernigkeit2, y_Koordinate * tankManager.koernigkeit2, 150, 255, 150, x_Koernig * koernigGroesse, y_Koernig * koernigGroesse, wallType); break; case 34: super.init(tankManager, x_Koordinate * tankManager.koernigkeit2, y_Koordinate * tankManager.koernigkeit2, 0, 255, 134, x_Koernig * koernigGroesse, y_Koernig * koernigGroesse, wallType); break; } for (int j = 0; j < y_Koernig; j++) { for (int i = 0; i < x_Koernig; i++) { wallTeile.addElement(new GameObject(tankManager, this.x_Koordinate + i * koernigGroesse, this.y_Koordinate + j * koernigGroesse, colorR, colorG, colorB, koernigGroesse, koernigGroesse, wallType)); } } } protected void malen() { for (int i = 0; i < wallTeile.size(); i++) { ((GameObject) wallTeile.elementAt(i)).malen(); } } protected boolean stossenGegen(GameObject gameObj) { return (super.stossenGegen(gameObj) && stossenGegenTeil(gameObj)); } protected boolean stossenGegenTeil(GameObject gameObj) { boolean stossen = false; Vector tempTeile = new Vector(); for (int i = 0; i < wallTeile.size(); i++) { if (gameObj.stossenGegen((GameObject) wallTeile.elementAt(i))) { tempTeile.addElement((GameObject) wallTeile.elementAt(i)); stossen = true; } } if (objectType != 33 && gameObj instanceof Missile) { for (int i = 0; i < tempTeile.size(); i++) { wallTeile.removeElement((GameObject) tempTeile.elementAt(i)); } } return stossen; } }