|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Timo Sandmann
Datum: Do, 12.07.2007 22:00:05
In-reply-to:
<46964282.70805@xxxxxxxx>
References:
<792F4909-2A8F-479F-BF59-B665BAD6FD86@xxxxxxxxxxxxxxx> <46962BF0.9040900@xxxxxxxx> <5A726171-A478-4684-B69D-8CA2753F9E0D@xxxxxxxxxxxxxxx> <46964282.70805@xxxxxxxx>
Hallo,
Am 12.07.2007 um 17:02 schrieb Benjamin Benz:
So, im SVN müsste nun eine schlankere Variante liegen, die auch gleich
das Override-Problem löst.
ich hab's grad noch mal etwas weiter optimiert, ein Makro für die
einfache Verwendung in Verhalten gebastelt (BLOCK_BEHAVIOUR(caller,
ms)) und es in bot_servo und bot_turn eingebaut.
BLOCK_BEHAVIOUR(caller, ms) bricht das aktuelle Verhalten ab und
sorgt per bot_delay dafür, dass dies frühestens nach ms Millisekunden
wieder aktiv wird (dann wird das delay-Verhalten natürlich nicht
erneut gestartet). Am besten sieht man die Verwendung in
bot_servo_behaviour() (http://www.heise.de/ct/projekte/machmit/ctbot/
browser/devel/ct-Bot/bot-logic/behaviour_servo.c).
Man kann das bot_delay() natürlich auch wie gehabt direkt aufrufen,
muss dann aber selbst dafür sorgen, dass nach Ablauf der Delay-Zeit
nicht wieder gewartet wird (wenn ein Verhalten aber vor dem Delay-
Aufruf eh schon in einen anderen State gewechselt hat, ist das Thema
ja bereits mit erledigt).
Gruß Timo
|
|
|