If-Anweisung (Objekt nachdem es gegessen wurde, mehrmals auftauchen lassen)

myname13

Mitglied
Hallo,

ich habe versucht bei Greenfoot ein kleines Spiel zu erstellen.
Wenn ein "Snake" einen "Wombat" isst, geht das Spiel zu Ende.
Der Wombat hingegen isst "Leaf".
Jetzt funktioniert alles, aber ich möchte, dass wenn der Wombat
ein Leaf isst, dass dann ein anderes Leaf kommt.
Also er isst was, dann kommt das Futter wieder an eine
andere Stellen.
Dazu habe ich bei WombatWorld:
[Java]
/**
* This class defindes the World "WombatWorld"
*/
public class WombatWorld extends World

{
public WombatWorld()
{
super(560,560, 1);
addObject(new Leaf(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
addObject(new Wombat(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
addObject(new Snake(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
prepare();
}
private void prepare()
{
if(Leaf.class==null)
{
addObject(new Leaf(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
}
}
}


[/Java]

Jetzt ist das Problem, wenn ich das abspiele und der Wombat ein Leaf isst, kommt kein neues.
 
Zuletzt bearbeitet:
[Java]
public WombatWorld()
{
super(560,560, 1);
addObject(new Leaf(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
addObject(new Wombat(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
addObject(new Snake(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
prepare();
}

private void prepare()
{
if(Leaf.class==null)
{
addObject(new Leaf(),Greenfoot.getRandomNumber(560),Greenfoot.getRandomNumber(560));
}
}
[/Java]

Bitte beschäftigte dich noch etwas mit Java OOP Grundlagen, so macht der Code keinen Sinn!
Du willst später sicher mit den Objekten arbeiten die du im Konstruktor erstellst und der "World" hinzufügst ==> mache daraus Klassenvariablen.
Die if-Bedingung in der Methode prepare ist unsinnig .... logisch wäre wenn du abfragst ob eine Instanz von einen Typ null wäre, aber nicht die Klasse!
 
Geht das vielleicht so?

[Java]
public void eatLeaf(){
Actor leaf = this.getOneObjectAtOffset(0, 0, Leaf.class);
if(Leaf != null)
{
((Wombat)getWorld()).addLeaf();
}
}

public void addLeaf(){
addObject(new Leaf(), Greenfoot.get.RandomNumber(560),Greenfoot.get.RandomNumber);
}
[/Java]
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben