c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Basic-Interpreter für den Bot

Absender: Timo Sandmann
Datum: Mi, 20.10.2010 09:38:18
In-reply-to: <096FD558C4D20046A1BABE72DFF0C6C33D481700C8@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References: <096FD558C4D20046A1BABE72DFF0C6C33B3ED5A41C@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx><CE1FB7FF-4A39-47CE-80F6-316DD3A2D068@xxxxxxxxxxxxxxx><20100826195514.307630@xxxxxxx> <9FC1FC43-9D8F-4DF1-A899-DD2305A89771@xxxxxxxxxxxxxxx> <9DD5454FB74E49BABC1EAF57CD9B8505@FrankPC> <D077FF81-B44C-43D6-B5AE-DC12B2BE6714@xxxxxxxxxxxxxxx> <09576064-BE2C-42E1-96DA-ABACB3B3E4F6@xxxxxxxxxxxxxxx> <20101013181942.290030@xxxxxxx> <EFA41A8A-EFD0-42D4-A75A-798D1EE8B024@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D480BB960@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <684B0001-B07F-4684-A8EE-FF7983C6FBE0@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D480BBA80@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <76B4A7B2-81A9-4B95-8E25-B844559AE7E4@xxxxxxxxxxxxxxx> <20101015194527.14260@xxxxxxx> <C691C4C1-2C4D-4B76-9179-209CCEE69DEA@xxxxxxxxxxxxxxx> <8D82B88E-1DB8-47F2-9BE2-C68EAA6C284E@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D481700C8@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>


Hallo Frank,

ich verstehe jetzt, was Du meinst bzw. wozu man das brauchen kann, aber ich denke, das funktioniert so mit Hilfe des delay-Verhaltens nicht: Wenn BLOCK_BEHAVIOUR() aufgerufen wird (startet ja im Prinzip nur das delay-Verhalten), ist das uBasic-Verhalten solange deaktiviert, bis die delay-Zeit abgelaufen ist. In dieser Zeit kann das uBasic-Verhalten dann natürlich auch nichts tun, also auch keine Speed-Werte setzen. BLOCK_BEHAVIOUR heißt nicht nur so, sondern _blockiert_ eben auch wirklich das Verhalten. 
Was Du hier bräuchtest, wäre aber eine Funktion, um innerhalb eines Verhaltens eine Zeit lang nichts zu tun bzw. nichts zu verändern (so dass die alten Speed-Wünsche erhalten bleiben), oder?

Bei dem bas2.txt-Programm hält der Bot dann auch immer kurz an, wenn er dicht an einer Wand ist. 

Gruß,
Timo


Am 20.10.2010 um 07:14 schrieb Menzel, Frank IT-OS:
> Hallo Timo,
> das uBasic Verhalten ist so gestrickt, dass die Speedvariablen (gesetzt durch bot_speed) solange auf diesen Geschwindigkeiten bleiben, bis die Wait-Zeit um ist, sprich das Delay-Verhalten beendet ist. Ansonsten würden die Geschwindigkeiten nur in Zeile 1020 gesetzt werden und der Bot losfahren. Jedoch im nächsten Verhaltensschritt nächste Zeile werden die speed-Werte wieder auf 0 gesetzt. Selbst bei goto zu Zeile 1020 zurück würden erst dann die Geschwindigkeitswerte wieder gesetzt werden, es wäre ein reines PingPong zu Geschwindigkeit-keine Geschwindigkeit. Damit habe ich die Möglichkeit geschaffen, den Bot eine gewisse Zeit zu drehen bzw. fahren zu lassen...
> 
> Gruß, Frank