Hey guys, i have to program something for school and i want to add a shield, after the Starship collected a powerup, but its simply not working. Could you help me pls???
import greenfoot.*;
public class Starship extends Actor
{
private int count = 2;
private boolean gotPowerup1=false;
private boolean gotPowerup2=false;
private boolean gotPowerup3=false;
public void act()
{
move(0);
checkKeys();
Powerup();
}
/**
* Press Keys to Move
* getOneObjectAtOffset (x,y,Name.class) == null prüft ob Objekt der Klasse neben Starship ist
*/
public void checkKeys()
{
if (Greenfoot.isKeyDown("left"))
{setLocation(getX() -6,getY());
}
if (Greenfoot.isKeyDown("right")
&& getOneObjectAtOffset(5,0, Menu.class) == null) // wenn rechts Menu dann stoppe
{setLocation(getX() +6,getY());
}
if (Greenfoot.isKeyDown("up"))
{setLocation(getX(),getY() -6);
}
if (Greenfoot.isKeyDown("down"))
{setLocation(getX(),getY() +6);
}
if ("space".equals(Greenfoot.getKey()))
{
fire();
}
}
public void fire()
{ Bullet bullet = new Bullet(); //schießen (object create)
getWorld().addObject(bullet,getX(),getY());
bullet.setRotation(-90);//objektrichtung anch oben richten
}
public void getShield()
{
count--;
if (count == 0)
{getWorld().addObject ( new Shield(), getX(), getY());
count=2;
}
}
public void Powerup()
{
Actor Powerup1 = this.getOneObjectAtOffset (1,1, Powerup1.class); //Code verkürzen
Actor Powerup2 = this.getOneObjectAtOffset (1,1, Powerup2.class); //Code verkürzen
Actor Powerup3 = this.getOneObjectAtOffset (1,1, Powerup3.class); //Code verkürzen
if (Powerup1 != null)
{
getWorld().removeObject(Powerup1); //Powerup1 entfernen
}
else if (Powerup2 != null)
{
getWorld().removeObject(Powerup2); //Powerup2 entfernen
gotPowerup2 = true;
}
else if (Powerup3 != null)
{
getWorld().removeObject(Powerup3); //Powerup3 entfernen
}
}
public void Powerup2_activated()
{if (gotPowerup2 =true)
{getShield();
}
}
}

