# Greenfoot wait()



## BlueFox (9. Mai 2012)

Hallo!
Ich arbeite an einem kleinen Spiel für meine DV-Prüfung. Hier erstmal der Code:


```
public void setRed()
    {   
        Red r;

        int xPos;
        int yPos;

        xPos = 137;
        yPos = 131;

        r = new Red();
        this.getWorld().addObject(r, xPos, yPos);

        
        this.getWorld().removeObject(r);

    }
```

Das Obkejt "Red" soll erscheinen und nach einer halben Sekunde wieder "removed" werden. Also muss der wait() befehl zwischen "addObject" und "removeObject, aber wie genau sieht dieser befehl aus?

LG


----------



## Kevin94 (9. Mai 2012)

Die wait-Methode von Object macht hier keinen Sinn, dann müsste ein anderer Thread dich wieder aufwecken.
Ich vermute mal du meinst sleep:

```
Thread.sleep(500);//für 500ms=0.5s
```


----------



## Gast2 (9. Mai 2012)

Falls die setRed Methode auf dem EDT läuft musst du die Befehle in nem separaten Thread ausführen.


----------



## Kevin94 (9. Mai 2012)

Das ist Greenfoot, da muss man nicht aufpassen.


----------



## Gast2 (9. Mai 2012)

Dann ist ja alles prima


----------



## BlueFox (9. Mai 2012)

Zu was gehört die Methode sleep()?

Wenn ich kompiliere kommt die Fehlermeldung "cannot find symbol - method sleep(int).

Woher sieht man das es Greenfoot ist?


----------



## Kevin94 (9. Mai 2012)

Du wirst doch wohl wissen mit welcher IDE du programmierst?
Oder wenn ich den Satz falsch verstanden hab: Ich habs an den  Methoden erkannt, weil ichs auch mal verwendet hab und es eine klassische Übungs-Umgebung ist

Und wenn du nicht mal copy&pasten kannst, dann ist programmieren, definitiv das falsche für dich.
sleep(long) ist eine statische Methode der Klasse java.lang.Thread.


----------



## BlueFox (9. Mai 2012)

Auf solch dämlichen Kommentare kann ich verzichten Kevin94!

Ich hab die Methode hier rauskopiert und sie klappt nicht ganz und ich wollt wissen wieso PUNKT!


----------



## Marcinek (9. Mai 2012)

Greenfoot arbeitet mit "ticks" also quasi rundenbasiert.

Mit wait() kommst du nicht weit.



BlueFox hat gesagt.:


> Ich hab die Methode hier rauskopiert und sie klappt nicht ganz und ich wollt wissen wieso PUNKT!



Er hat doch geschrieben warum. Eventuell hilft da ein Buch um das nachzulesen. Diese Aussage ist mehr als unnötig.


----------



## Crian (10. Mai 2012)

Vermutlich wird es in Greenfoot irgendeine Möglichkeit geben, so und so viele Ticks zu warten, oder aber eine Methode in so und so vielen Ticks zu starten. Schau mal, ob du da etwas findest. Ich kannte bis eben Greenfoot nicht und weiß nun nur dank Google ungefähr, was das ist.


Edit: Nach http://bildungsserver.berlin-brande...ogrammiersprachen/greenfoot/Greenfoot_API.pdf

könnte vielleicht 
	
	
	
	





```
delay()
```
 sein, was du suchst. Schwer zu sagen so von außen.


----------



## Marcinek (10. Mai 2012)

Bei jedem Tick wird die doAction()? Methode aufgrufen.

Der neu erstellte Actor muss die Anzahl der Aufrufe zählen in einer Member Variable und entsprechend reagieren.


----------

