Alle Objekte einer LUA-Datei ausgeben / bearbeiten

Aus Das Wherigo-Handbuch
Wechseln zu: Navigation, Suche

Da in LUA alles aus einer table besteht - auch die Cartridge selber ist es nur logisch, dass in einer Table alle anderen Objekte gespeichert sind.

Im Cartridge-Objekt AllZObjects steckt eine table mit allen Objekten, die definiert sind.

Dies stellt ein sehr mächtiges Instrument dar - richtig eingesetzt, kann man folgende Dinge damit machen

  • Alle Namen und Beschreibungen durchgehen und Platzhalter mit Umlauten ersetzen (z.B. aus &a wird ä)
  • Implementierung von Funktionen, die aufgrund eines Strings ein Media-Objekt liefern z.B. anhand des Namens oder der jpg-Datei (z.B. "mediawuerfel"..wuerfelanzahl)
  • Debugging-Werkzeuge - Objekte auswählen, aktivieren, deaktivieren, verschieben (Zonen örtlich, Items und Personen hin und herschieben)
  • Automatik-Funktionen - z.b. Aktivierung der 3 nächstgelegenen Zonen
  • usw...der Fantasie sind keine Grenzen gesetzt

Bilder identifizieren, Codetabellen, Umlaute ersetzen

In der folgenden Beispielcartridge ist das Prinzip ersichtlich - programmiert in Urwigo mit User-Funktionen Datei:Getinfo.zip


Update: in die Cartridge wurde ein Bildwechsler eingebaut, der in einem Item alle vorhandenen Bilder durchwechselt...


Player-Ergebnisse:

  • Emulator: läuft
  • Garmin Oregon: läuft
  • Android WhereYouGo: läuft grundsätzlich, Vorischt beim Aussuchen von Bildern, da Medien als ZObject gelistet werden und nicht als ZMedia - durch Anpassen der Cartridge kann man das aber hinbekommen - (korrigierte Version). Umlaut-Ersetzung, Cartridge-Infos: Fehlermeldung wg. Verwendung von NIL in String-Concatenate bzw. String-Teilen ersetzen --> dort wo nil-Werte vorkommen können, muss das mit if vorher abgefragt werden (neue Urwigo-Datei hochgeladen)
  • I-Phone: läuft grundsätzlich, Bilder sind auch ZMedia - automatischer Bildwechsel macht beim I-Phone Probleme - erst nach manuellem Anclicken und erneutem Aufrufen wechselt das Bild.
  • PPC-Player auf HTC HD2 (WM6.5): läuft
  • OpenWIG auf JBED auf HTC HD2 (WM6.5): Objektliste wird ausgegeben. Bilder sind jetzt auch o.k. Medien sind ebenfalls als ZObject gelistet

Damit sind Cartridges mit deutschen Umlauten in Urwigo möglich sein. Eine verbesserte Cartridge wie man das macht und eine entsprechende Beschreibung wurde unter [[1]] abgelegt

Bildgrößen automatisch ersetzen zur Laufzeit

Um auf allen Playern optimale Bildgroessen zu haben, kann man automatisch zur Laufzeit Bilder ersetzen lassen.

Die hochgeladene Cartridge demonstriert das (Urwigo + LUA-Code). Datei:Testmedia.zip

Folgende Vorgehensweise wird gewaehlt:

  • Bilder existieren unter dem Grundnamen und weiteren Namen mit zusätzlicher Zahl dahinter (garmin, garmin80, garmin120, garmin180)
  • wird abhängig vom Player (anderer Thread - hier Demo per Kommando) die LUA-Funktion zum Ersetzen der Bilder aufgerufen, dann wird folgendes gemacht:
    • Suchen nach Bildern (ZObjects oder ZMedia)
    • Suchen, ob für ein gefundenes Media eine Datei mit zusätzlicher Zahl (z.B. 80) dahinter existiert
    • falls ja, alle Objekte der Cartridge durchgehen und wenn dieses Media verwendet wird, ersetzen durch das gewünschte Media mit anderer Auflösung

Tests mit Playern:

  • Emulator ok
  • Garmin ok
  • Whereyougo: ok, Whereyougo scheint aber die Bild-Dimension auszuwerten - man sieht ein großes Bild trotz 80px Bild-Tausch, sieht aber auch, dass die Qualität des Bildes deutlich leidet, d.h. das Bild tatsächlich getauscht wurde
  • I-Phone: läuft - na klar, hab vergessen print rauszunehmen
  • Pocket-PC: ?
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge