Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

play-anywhere-wherigo aber wie?

Adventure-Cartridges für PDAs oder Garmin Colorado/Oregon

Moderator: m.zielinski

FSNTL
Geocacher
Beiträge: 183
Registriert: Do 30. Jun 2011, 08:38

play-anywhere-wherigo aber wie?

Beitrag von FSNTL » Fr 20. Nov 2015, 09:16

Moin,
ich überlege aus meinem Wherigo einen play-anywhere zu erstellen, habe aber leider keinen Plan von LUA...

Könnte mir hier Jemand eine LUA Funktion zur verfügung stellen mit der ich meine erstellten Zonen "moven" kann?
(es sind 48 Zonen die in einem bestimmten Muster angeordnet werden müssen)


Danke und Gruß
FSNTL

Werbung:
Benutzeravatar
dennistreysa
Geocacher
Beiträge: 61
Registriert: Mo 8. Okt 2012, 00:02
Wohnort: Jena / Treysa
Kontaktdaten:

Re: play-anywhere-wherigo aber wie?

Beitrag von dennistreysa » Fr 20. Nov 2015, 16:44

Das mit dem 'moven' klappt leider nicht auf allen Geräten, zumindest scheint es auf dem iPhone ab und zu Probleme zu geben, aber ich sage dir trotzdem mal wie ich es für meine Cartridge gemacht habe (http://coord.info/GC5CG80).

Zu allererst musst du deinen Zonen einen festen Variablennamen geben, dies machst du unter 'Identifier', in meinem Beispiel wäre das 'zone_1'
Bild


Dann benötigst du eine Funktion die eine Zone verschieben kann, allerdings muss man sich vorher ein paar Dinge überlegen.

Frage 1: Wohin sollen die Zonen verschoben werden?
Nun, man braucht eine Art Fixpunkt mit dessen Hilfe man die Zonen verschieben kann, man könnte auch sagen der Ursprung mit dem wir später relativ die Zonenpunkte verschieben werden. Schau dir dazu folgendes Bild an:

Bild


Die linkte untere Zone habe ich so angelegt, dass alle 3 Punkte auf der selben Koordinate liegen (es gibt bei Wherigos so etwas wie einen einzelnen Punkt gar nicht), dies ist unser Ursprung. Das Rote Gebilde ist die Zone die wir verschieben wollen.
Um nun auf die Frage zurückzukommen, wohin die Zonen verschoben werden sollen machen wir es uns einfach und legen einfach fest, dass der Spieler immer im Ursprung steht, d.h. war eine Zone vorher östlich des Ursprungs wird sie nach dem Verschieben östlich vom Spieler sein. Das ist nicht nur einfach, sondern so können wir auch genau planen, wo der Spieler stehen muss.

Frage 2: Wie verschieben wir?
Nun, der Mathematiker sagt sich jetzt: 'Das ist einfach, wir berechnen einfach die Entfernung und den Winkel zwischen dem alten Ursprung und der Spielerposition und können dann sämtliche Zonenpunkte um diese Distanz und den Winkel verschieben'. Diese Annahme ist an sich auch völlig korrekt, die Sache hat nur einen Haken! Manche Player scheinen nicht wirklich genau zu rechnen (zu wenig Nachkommastellen), dies führt dazu dass die Zonen unschön 'abdriften' wenn der Spieler zu weit weg vom originalen Ursprung steht, WhereYouGo hat das zumindest bei mir so gemacht. Wir brauchen also einen besseren Ansatz! Meine Idee (und die scheint in der Praxis auch zu funktionieren) sieht folgendermaßen aus: Wir berechnen für alle Punkte der Zonen den Abstand und den Winkel zum Ursprung und legen einen neuen Punkt an, der eben diesen Abstand und Winkel hat, diesesmal aber relativ zur Spielerposition, also dem neuen Ursprung. Aber Vorsicht: Das klappt natürlich nur, wenn der Abstand zwischen originalem Ursprung und den Zonenpunkten vergleichsweise klein ist (mehrere hundert Meter maximal)!

Frag 3: Und wie sieht das nun im Code aus?
Als erstes Brauchen wir eine Funktion, die uns für zwei gegebene Punkte den Abstand und den Winkel berechnet. Da gibt es zwar die Wherigo-Interne Funktion 'VectorToPoint', diese produziert aber auf alten iPhone-Playern ein um 180° gedrehtes Ergebnis, aus diesem Grund basteln wir uns unsere eigene zusammen (habe ich aus dem WherigoHandbuch 'geklaut'): http://pastebin.com/Kp3jMz3y
Wie wir diese verwenden zeige ich später.
Als nächstes brauchen wir die eigentliche Verschiebe-Funktione, diese bekommt als Input die Punkte der Zone die wir verschieben wollen, den alten und den neuen Ursprung (dieses Mal selbst programmiert :D): http://pastebin.com/KJ8RTKA5
So, nun haben wir die beiden wichtigen Funktionen, doch wie geht es weiter?
Ich habe mir mal erlaubt den Rest direkt im Code zu kommentieren. Mit der Funktion 'createGame' werden all unsere Zonen verschoben: http://pastebin.com/728R8N2f

Ganz außen bleibt dann nur noch der Aufruf von createGame() übrig ;)


Puh, was ein langer Text, ich hoffe das hilft dir weiter ;)
Bild
Viel Spaß ;)

Benutzeravatar
dennistreysa
Geocacher
Beiträge: 61
Registriert: Mo 8. Okt 2012, 00:02
Wohnort: Jena / Treysa
Kontaktdaten:

Re: play-anywhere-wherigo aber wie?

Beitrag von dennistreysa » Fr 20. Nov 2015, 16:47

Ok, ich habe bei mir keinen Ursprung verwendet, sondern benutze die Linke untere Ecke des Spielfelds, aber kommt auf das Gleiche drauf hinaus ;)

Bild
Bild
Viel Spaß ;)

FSNTL
Geocacher
Beiträge: 183
Registriert: Do 30. Jun 2011, 08:38

Re: play-anywhere-wherigo aber wie?

Beitrag von FSNTL » Fr 20. Nov 2015, 21:22

vielen, vielen Dank für eine so lange gründliche Antwort :gott:
Werde ich mir gleich mal in Ruhe ansehen.

Die 999 habe ich gerade im Simulator mal getestet, sehr cool :D


Ich melde mich wieder.
Gruß
Frank

Benutzeravatar
dennistreysa
Geocacher
Beiträge: 61
Registriert: Mo 8. Okt 2012, 00:02
Wohnort: Jena / Treysa
Kontaktdaten:

Re: play-anywhere-wherigo aber wie?

Beitrag von dennistreysa » Fr 20. Nov 2015, 22:33

Das läuft im Emulator :shocked: Da muss ich mal nachbessern :D
Bild
Viel Spaß ;)

FSNTL
Geocacher
Beiträge: 183
Registriert: Do 30. Jun 2011, 08:38

Re: play-anywhere-wherigo aber wie?

Beitrag von FSNTL » Sa 21. Nov 2015, 11:29

Ich habe mal den ganzen Code in eine Catrige gebaut und versucht das ganze mit createGame() zu starten...

Dann kommt ne Fehlermeldung (....Die Länge darf nicht kleiner als Null sein.....), wo gebe ich denn eigendlich die Werte ein um die verschoben werden soll, oder die Punkte.....?

Danke und Gruß
Frank

FSNTL
Geocacher
Beiträge: 183
Registriert: Do 30. Jun 2011, 08:38

Re: play-anywhere-wherigo aber wie?

Beitrag von FSNTL » Sa 21. Nov 2015, 11:40

Ja, funktioniert im Simulator von Urwigo, hat mich auch gewundert.
In wenigen Sekunden hatte ich die Finalkoordinaten :shocked:

Aber richtig gut gemacht mit dem Aufbau, sogar das Spielfeld rotieren ist möglich... :applaus:

FSNTL
Geocacher
Beiträge: 183
Registriert: Do 30. Jun 2011, 08:38

Re: play-anywhere-wherigo aber wie?

Beitrag von FSNTL » Sa 21. Nov 2015, 11:42

Ach so, noch etwas.

Ich bin gerade Betatester von PIGO, die arbeiten gerade an einer neuen Version der Wherigo App für das IPhone.
(Anzeigen der Zonen als "Form" wird es aber auch da wohl leider nicht geben)

Charlenni
Geomaster
Beiträge: 755
Registriert: Di 17. Aug 2010, 15:27

Re: play-anywhere-wherigo aber wie?

Beitrag von Charlenni » Sa 21. Nov 2015, 13:43

Das hört sich ja gut an. Was gibt es denn Neues?

FSNTL
Geocacher
Beiträge: 183
Registriert: Do 30. Jun 2011, 08:38

Re: play-anywhere-wherigo aber wie?

Beitrag von FSNTL » Sa 21. Nov 2015, 16:54

angepasste Optik, und Fehlerbeseitigung....

Leider wohl keine neuen Funktionen...

Antworten