bodenseepingu
Geomaster
Hallo,
ich hab zum Thema WIG-Debuggen eine Idee gehabt, die ich umgesetzt habe - Vielleicht hilft sie euch...
Umgesetzt habe ich das mit Urwigo und User-Code
Wenn ein WIG fast fertig ist und mit dem Emulator hinreichend getestet ist, geht es ans zeitaufwändige Outdoor-Debuggen mit dem operationellen Gerät am besten auch mit verschiedenen Geräten.
Der Oregon verfügt zwar über einen Simulationsmodus - aber der funktioniert vielleicht nicht unbedingt so, wie man das haben will.
Also habe ich mir überlegt, wie man das Debuggen von der heimischen Terasse aus möglich macht.
Die Antwort ist einfach: Man verlegt die Zonen einfach auf die Terasse - dynamisch - nicht im Code !
Man gibt dem Player einfach einen neuen Gegenstand "Debug_Zones", der ein paar Kommandos hat.
So wird es grob gemacht - bei Bedarf folgt demnächst eine Testcartridge..
- Gegenstand DEBUG_ZONES
mit Kommandos
- Initialisierung
- Zone auswählen
- Zone hierher schieben...ggf noch weitere wie Zone wegschieben, activieren, visible..., Ausdehnung
- Eingabe debug_zone_input
- Multiple-Choice Auswahl der Zonen: alle Zonennamen korrekt eintragen !!!
- Variable debugvar
- enthält nach der Eingabe den Namen der ausgewählten Zone
- User Code
- debug_zones_init() bei Kommando Initialisierung aufrufen
- debug_zone_verschieben(objdebugvar) bei Kommando Zone hierher schieben aufrufen
- Hilfsfunktionen und weitere Funktionen nach Bedarf
ich hab zum Thema WIG-Debuggen eine Idee gehabt, die ich umgesetzt habe - Vielleicht hilft sie euch...
Umgesetzt habe ich das mit Urwigo und User-Code
Wenn ein WIG fast fertig ist und mit dem Emulator hinreichend getestet ist, geht es ans zeitaufwändige Outdoor-Debuggen mit dem operationellen Gerät am besten auch mit verschiedenen Geräten.
Der Oregon verfügt zwar über einen Simulationsmodus - aber der funktioniert vielleicht nicht unbedingt so, wie man das haben will.
Also habe ich mir überlegt, wie man das Debuggen von der heimischen Terasse aus möglich macht.
Die Antwort ist einfach: Man verlegt die Zonen einfach auf die Terasse - dynamisch - nicht im Code !
Man gibt dem Player einfach einen neuen Gegenstand "Debug_Zones", der ein paar Kommandos hat.
So wird es grob gemacht - bei Bedarf folgt demnächst eine Testcartridge..
- Gegenstand DEBUG_ZONES
mit Kommandos
- Initialisierung
- Zone auswählen
- Zone hierher schieben...ggf noch weitere wie Zone wegschieben, activieren, visible..., Ausdehnung
- Eingabe debug_zone_input
- Multiple-Choice Auswahl der Zonen: alle Zonennamen korrekt eintragen !!!
- Variable debugvar
- enthält nach der Eingabe den Namen der ausgewählten Zone
- User Code
- debug_zones_init() bei Kommando Initialisierung aufrufen
- debug_zone_verschieben(objdebugvar) bei Kommando Zone hierher schieben aufrufen
- Hilfsfunktionen und weitere Funktionen nach Bedarf
Code:
---- debug ----
my_zones = {}
function debug_zones_init()
my_zones = { objDorf1, objWald1, objWildschweinRevier,objHausvonObelix, objReichderOpfer, objVermaechtnis,
objMiraculixHuette, objBaumhausvonTroubadix, objStart, objPiratenschiff1, objFundort_Amulett,
objLagerBabaorum, objLagerKleinbonum, objWildschweinVersteck, objRoemer_Bewegungszone ,
objPiratenschiffanLand,}
end
function search_zone(name)
for key,zone in pairs(my_zones) do
print (zone.Name)
if zone.Name == name then
return zone
end
end
return nil
end
function debug_zone_verschieben(objdebugvar)
local zone = search_zone(objdebugvar)
if zone ~= nil then
objDEBUGZONES.Description = objDEBUGZONES.Description.." Zone "..objdebugvar.." nach "..Player.ObjectLocation.latitude.." "..Player.ObjectLocation.longitude.." verschoben"
local activation = zone.Active
zone.Active = false
zone.OriginalPoint = Player.ObjectLocation
zone.Points = GetZonePoints(Player.ObjectLocation,5)
zone.Active = activation
else
objDEBUGZONES.Description = objDEBUGZONES.Description.." Zone "..objdebugvar.." nicht gefunden"
end
end
function GetZonePoints(refPt, radi)
local dist = Wherigo.Distance(radi, 'm')
local pts = {
Wherigo.TranslatePoint(refPt, dist, 22.5),
Wherigo.TranslatePoint(refPt, dist, 67.5),
Wherigo.TranslatePoint(refPt, dist, 112.5),
Wherigo.TranslatePoint(refPt, dist, 157.5),
Wherigo.TranslatePoint(refPt, dist, 202.5),
Wherigo.TranslatePoint(refPt, dist, 247.5),
Wherigo.TranslatePoint(refPt, dist, 292.5),
Wherigo.TranslatePoint(refPt, dist, 337.5),
}
return pts
end