Fortschrittskurs „Zone als Kreis“
Voraussetzung: Einsteigerkurs
Als Eintritt in den Fortschrittskurs wollen wir uns nochmal mit der Definition von Zonen beschäftigen.
Im Einsteigerkurs haben wir unsere Zonen mit 4 Punkten abgesteckt und "On enter" implementiert.
Bei dieser
Vorgehensweise kommt es immer wieder zu Problemen im Spielablauf indem der Wherigo-Player entweder eine Ecke
der Zone anvisiert um seinen Richtungspfeil auszurichten, oder der Wherigo-Builder aktualisiert den
OriginalPoint der Zone, an dem sich viele Player orientieren, nicht wenn die Zone nachträglich verschoben
wird.
Abbildung 1: Statt alle vier Ecken zu messen reicht es den Mittelpunkt und den Radius anzugeben |
Wenn man die Zone nicht genau abstecken muss und auch gut mit einem Kreis leben kann, so sparen wir uns die
Mühe mehrere Punkte zu messen und bauen ein Minidreieck mit dreimal Kreismittelpunkt als Koordinaten.
Über "In proximity" lässt sich der Radius des Kreises bestimmen.
Anstatt sich „On enter“ zu bedienen wird der Programmablauf beim Erreichen einer Station in „On proximity“ definiert.
Über "In proximity" lässt sich der Radius des Kreises bestimmen.
Anstatt sich „On enter“ zu bedienen wird der Programmablauf beim Erreichen einer Station in „On proximity“ definiert.
Wenn ihr Objekte in der Zone platzieren wollt, die dem Spieler angezeigt werden sollen, müsst ihr „Show
Objects“ auf „On proximity“ umstellen.
Der Vorteil der Methode liegt auf der Hand: Der Spieler navigiert genau auf den Zonenmittelpunkt und als
Cacheowner reicht es einen Punkt zu messen. Denn meistens möchte man den Spieler an einem bestimmten Punkt
führen.
Als weiteren Nebeneffekt simuliert ihr Geschwindigkeit und reibungslosen Programmablauf, denn der Spieler
erhält sehr genaue Angaben wo er hin laufen soll und das Ereignis tritt schneller ein als erwartet.
Das Verlassen der Zone muss mit "On distant" erfasst werden, da unsere eigentlicht Zone nur aus einem Punkt besteht |
Fairerweise sollte nicht unerwähnt bleiben, dass diese Lösung auch Nachteile besitzt. Genauso wie „On enter“
steht auch auch „On exit“ nicht zur Verfügung, da die eigentliche Zone ja nur aus einem Punkt besteht.
Abhilfe kann da aber „On distant“ verschaffen. Dieses Ereignis stellt quasi das Gegenteil zu „On proximity“
dar und wird ausgelöst, wenn der Annäherungsbereich verlassen wird.
Aber auch hier steckt der Teufel im Detail, denn „On distant“ wird von den Playern auch beim Start des
Cartridges ausgelöst.
Wir lösen dieses Problem mit einer Booleanvariable „GameOnStart“, die initial auf „True“ steht und beim
Erreichen der ersten Zone auf „False“ gesetzt wird.
TEXT
Im „On distant“ Block muss dann lediglich eine Überprüfung auf den „GameOnStart“ Wert stattfinden.
Man kann also die Kreisfunktion mit der „On distant“ Methode nutzen, evtl. ist aber ein traditionelles Vieleck als Zone mit „On exit“ Funktion einfacher zu implementieren.
Es kommt halt immer auf die Situation an.
Die urwigo Datei zu diesem Tutorial als Download
Leider ist auch URWIGO nicht intuitiv zu bedienen. Der Macht erst einmal einen besseren Eindruck als der Wherigo Builder von Groundspeak, der kann saeine eigenen abgespeicherten Projekte nicht wieder aufrufen, aber man verliert schnell den Überblick.
AntwortenLöschenUnd eine IT Ausbildung möchte ich ja nun nicht auch noch absolvieren.
Gruß, "Geobulli"