import java.util.Vector;
public class GameObject {
protected TankManager tankManager;
protected int x_Koordinate, y_Koordinate, x_Koe, y_Koe;
protected int colorR, colorG, colorB;
protected int objectType;
protected int id;
protected int objWidth, objHeight, objWidth_Koe, objHeight_Koe;
protected boolean zerstoerbarKeit = true;
/**
*
* @param tankManager
* @param x_Koordinate
* @param y_Koordinate
* @param colorR
* @param colorG
* @param colorB
* @param objWidth
* @param objHeight
* @param objectType
*/
public GameObject(TankManager tankManager, int x_Koordinate,
int y_Koordinate, int colorR, int colorG, int colorB, int objWidth,
int objHeight, int objectType) {
init(tankManager, x_Koordinate, y_Koordinate, colorR, colorG, colorB,
objWidth, objHeight, objectType);
}
protected void init(TankManager tankManager, int x_Koordinate,
int y_Koordinate, int colorR, int colorG, int colorB, int objWidth,
int objHeight, int objectType) {
this.tankManager = tankManager;
this.x_Koordinate = x_Koordinate;
this.y_Koordinate = y_Koordinate;
this.colorR = colorR;
this.colorG = colorG;
this.colorB = colorB;
this.objWidth = objWidth;
this.objHeight = objHeight;
this.objWidth_Koe = objWidth / tankManager.koernigkeit2;
this.objHeight_Koe = objHeight / tankManager.koernigkeit2;
this.objectType = objectType;
}
public GameObject() {
}
protected void malen() {
tankManager.maler.setColor(colorR, colorG, colorB);
tankManager.maler.fillRect(x_Koordinate, y_Koordinate, objWidth,
objHeight);
}
protected boolean stossenGegen(GameObject gameObj) {
if (gameObj instanceof Tank) {
if (x_Koe < gameObj.x_Koe + gameObj.objWidth_Koe
&& x_Koe > gameObj.x_Koe - objWidth_Koe
&& y_Koe < gameObj.y_Koe + gameObj.objHeight_Koe
&& y_Koe > gameObj.y_Koe - objHeight_Koe) {
return true;
}
}
if (x_Koordinate < gameObj.x_Koordinate + gameObj.objWidth
&& x_Koordinate > gameObj.x_Koordinate - objWidth
&& y_Koordinate < gameObj.y_Koordinate + gameObj.objHeight
&& y_Koordinate > gameObj.y_Koordinate - objHeight)
return true;
else
return false;
}
protected boolean stossenGegen(Vector obj) {
boolean wall = false;
if (obj.size() > 0) {
wall = obj.elementAt(0) instanceof Wall;
}
for (int i = 0; i < obj.size(); i++) {
if (wall) {
if (stossenGegen((Wall) obj.elementAt(i)))
return true;
} else {
if (stossenGegen((GameObject) obj.elementAt(i))
&& this != (GameObject) obj.elementAt(i))
return true;
}
}
return false;
}
protected boolean stossenGegen(Wall wall) {
return wall.stossenGegen(this);
}
public static int getRund(float f) {
Float ftemp = new Float(f);
int fint = ftemp.intValue();
if (ftemp.floatValue() >= fint + 0.5f) {
fint = fint + 1;
}
return fint;
}
protected void explodieren() {
}
}