bodenseepingu
Geomaster
Hallo,
im Rahmen einer WIG-Idee, die inzwischen auch veröffentlicht wurde kam das Problem auf, daß ich den Abstand des Players zu bis zu 100 Punkten (Zonen) überprüfen wollte und entsprechend reagieren wollte, wenn eine Mindestdistanz unterschritten ist.
Der WIG nennt sich Geo-Memory und ist unter http://coord.info/GC2MMGB veröffentlicht.
Über direkten LUA Einsatz gibt es offensichtlich auch unter GARMIN überhaupt kein Problem - das Stichwort heißt LUA-Tables.
Folgende Codefragmente habe ich verwendet
Übrigens, die Abfrage der Table-Größe führte bei WhereYouGo zu einem Absturz, deshalb habe ich das Konstrukt vermieden...
im Rahmen einer WIG-Idee, die inzwischen auch veröffentlicht wurde kam das Problem auf, daß ich den Abstand des Players zu bis zu 100 Punkten (Zonen) überprüfen wollte und entsprechend reagieren wollte, wenn eine Mindestdistanz unterschritten ist.
Der WIG nennt sich Geo-Memory und ist unter http://coord.info/GC2MMGB veröffentlicht.
Über direkten LUA Einsatz gibt es offensichtlich auch unter GARMIN überhaupt kein Problem - das Stichwort heißt LUA-Tables.
Folgende Codefragmente habe ich verwendet
Code:
objSpielkartenlocationstbl = {} --table für die Locations der memory-Karten
function objKartepruefen:OnTick() --timer tick
local dist = Wherigo.Distance(0, 'm')
for i = 1, anzahlKarten, 1 do
local d, b = Wherigo.VectorToPoint(objSpielkartenlocationstbl[i], Player.ObjectLocation)
local dn = d:GetValue 'm' --wichtig, das so zu machen, sonst Absturz auf WhereYouGo
if dn <= objDistanzzuKarte then
...tue irgendwas
end
end
end
--hier werden die Positionsdaten initialisiert - in einem Quadrat...
function SetzeKartenLocations(refPt,d,b, AnzahlPaare) --d= distanz, b= bearing...
local width = math.sqrt(2 * AnzahlPaare)
local field_width = d / width / 2
objDistanzzuKarte = field_width
for i = 0.5, width, 1 do
for j = 0.5, width, 1 do
local winkel = math.deg(math.atan(j / i ))
local entfernung = j / math.sin(math.rad(winkel)) * d / width
local dist = Wherigo.Distance(entfernung, 'm')
local ZP = Wherigo.TranslatePoint(objSpielbrett.OriginalPoint, dist, (b - winkel) % 360)
table.insert(objSpielkartenlocationstbl, ZP)
end
end
end
Übrigens, die Abfrage der Table-Größe führte bei WhereYouGo zu einem Absturz, deshalb habe ich das Konstrukt vermieden...