Need to program a Game for the school and im stuck at the point where my Actor-Car(Player1) shots a bullet wich can bounce off a wall once and when he hits the enemy (CPU) he should be removed from the world and the cpu loses then 20 health ( he has 100 btw),
But right now I dont know how to fix this problem and what to write where.
public class Car extends Actor
{
private int ShotTimer = 0; // Stopuhr?
private int health = 100; // Lebensanzeige
public void act()
{
double entfernung = Math.sqrt(Math.pow(getX()-640, 2)+Math.pow(getY()- 402.5 ,2)); // Wurzel aus -> -640 hoch 2 | 402.5 hoch 2 || dadurch kriegen wir die entfernung unserer figur zum Mittelpunkt
if(entfernung >= 363.5){ // wenn es kleiner / = 363.5 ist dann soll er um 25 nach hinten gehen ||kann somit nicht drüber und wird von einer unsichtbaren wand festgehalten
move(-25); // gehe 25 nach hinten
}
else{
if (ShotTimer > 0) { //wenn der shottimer größer als 1 ist ,dann
ShotTimer = ShotTimer - 1; // in bestimmten zeitabstand immerwieder -1 bis 0 erreicht wird
}
else if (Greenfoot.isKeyDown("space")) { // wenn taste Space gedrückt wird dann...
getWorld().addObject(new Shot(this), getX(), getY()); // füge Object.class Shot zu der x y koordinate des Autos hinzu
ShotTimer = 200; // Timer auf 200 stellen um somit eine schuß verzögerung zu erzeugen
}
MouseInfo mi = Greenfoot.getMouseInfo(); // Das Greenfoot programm soll die Koordinate der Maus aufnehmen welche durch den code unter dieser entommen wurde
if(mi!=null) // wenn die Daten nicht = 0 sind dann...
turnTowards(mi); // zur Maus drehen
if (Greenfoot.isKeyDown("w")) // wenn taste w gedrückt wird dann...
move(2); // bewege dich 2 nach vorne
}
if (isTouching(block.class)) // wenn "car" den "block" berührt ,dann
{
move(-27); //bewege dich um 27 nach hinten
}
if (isTouching(CPU.class)) //wenn "car" den "CPU" berührt ,dann
{
CPU c = (CPU) //CPU abkürzung zu c
getOneIntersectingObject(CPU.class); //interagire mit dem objekt : CPU.class und
c.move(-27); //bewege dich ("CPU") um 27 nach hinten
}
}
public void turnTowards (MouseInfo mi) // coding um herauszufinden wo die Maus ist, um im nachhinein sich in die Richtung zu drehen
{
turnTowards(mi.getX(), mi.getY()); // drehe dich zur nun entommenen Maus x y koordinate
}
public void loseHealth(int amount) // wenn die Lebensanzeige 0 erreicht ,wird dieser Spieler aus dem Spiel genommen
{
health -= amount;
if (health < 1) // wenn "health" kleiner als 1 ist ( also 0 ), dann...
{
getWorld().removeObject (this); // entferne dieses Object von der Welt
}
}
}
