• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

iPhone - Problem mit Bildwechsel!?

kansu_makugen

Geocacher
Ahoihoi!

Ich hab mir mal ein iPhone 4 organisiert und eine Cartridge darauf testen wollen. Dabei hab ich ein RIESENPROBLEM festgestellt. Ich hab da so ein wunderschönes Rätsel eingebaut, dass nach jedem Userinput ein paar Variablen verrechnet und dann entsprechend ein Bild aus einem Array wählt und als neues Bild für den Input festlegt. Im Emu läufts, auf dem Desire HD mit WhereYouGo auch, sogar auf dem ollen Nokia 5800 XM (nur eben langsamer ;) ). Auf dem iPhone wird aber kein Bild angezeigt! Das Rätsel ist also unlösbar. Schöner Scheiß! Kennt jemand das Problem und weiß Rat?

Gruß

(Da denkste, du bist fertig, und dann taucht ein Problem nach dem anderen auf :motz: )
 

Anhänge

  • iPhone_Fasching_1.jpg
    iPhone_Fasching_1.jpg
    94 KB · Aufrufe: 416
  • iPhone_Fasching_2.jpg
    iPhone_Fasching_2.jpg
    209,3 KB · Aufrufe: 416
  • iPhone_Fasching_3.jpg
    iPhone_Fasching_3.jpg
    72,4 KB · Aufrufe: 416

bodenseepingu

Geomaster
hab kein iPhone - kann das iPhone überhaupt Bilder anzeigen für Inputs? Sind diese evtl. statisch? Sonst musst das evtl. per Messagebox mal machen oder probieren...d.h. einfach mal probieren ob dann das Bild kommt...
 
OP
kansu_makugen

kansu_makugen

Geocacher
bodenseepingu schrieb:
hab kein iPhone - kann das iPhone überhaupt Bilder anzeigen für Inputs? Sind diese evtl. statisch? Sonst musst das evtl. per Messagebox mal machen oder probieren...d.h. einfach mal probieren ob dann das Bild kommt...

Ich hab selber auch kein iPhone. Hatte nur die Gelegenheit, am WE auf einem zu testen. Von daher ist die Fehlersuche schon schwierig.
Bis zu der Stelle mit den fehlenden Bildern tauchen schon einige Inputs auf und ich bin mir (fast ;) ) sicher, dass dort Bilder angezeigt wurden.
Naja, ich bleib dran. Bis dahin kann der WIG eben nicht aufm iPhone gespielt werden. Ist halt schade...
 

xxmurdockxx

Geomaster
Kansu_Makugen schrieb:
Bis zu der Stelle mit den fehlenden Bildern tauchen schon einige Inputs auf und ich bin mir (fast ;) ) sicher, dass dort Bilder angezeigt wurden.
Iphone kann definitiv Bilder bei Inputs anzeigen.

Kannst mir ja mal ne Testcartridge schicken.
 
OP
kansu_makugen

kansu_makugen

Geocacher
xxmurdockxx schrieb:
Kansu_Makugen schrieb:
Bis zu der Stelle mit den fehlenden Bildern tauchen schon einige Inputs auf und ich bin mir (fast ;) ) sicher, dass dort Bilder angezeigt wurden.
Iphone kann definitiv Bilder bei Inputs anzeigen.

Kannst mir ja mal ne Testcartridge schicken.

Jo, mach ich. heute wirds nichts mehr, aber morgen bestimmt. danke schon mal!
 
OP
kansu_makugen

kansu_makugen

Geocacher
Moinsen,

hier mal die Ergebnisse meiner Fehlersuche - Danke an xxmurdockxx fürs Testen an dieser Stelle!
Die iPhone App scheint Probleme mit (mehrdimensionalen?) tables zu haben. Ich habe folgendes festgestellt:

Variante 1: Ein media object wird mit einem anderen aus einer table "überschrieben" und anschließend als Bild für den Inputdialog festgelegt
Code:
objAktuellesBild = objBild[var1][var2][var3]
objEingabe.Media = objAktuellesBild
Das war die bisherige Vorgehensweise und die LÄUFT NICHT auf dem iPhone

Variante 2: Im Prinzip wie 1, aber ohne den Zwischenschritt des "ÜBerschreibens". Das media object aus der table wird gleich als Bild für den Input festgelegt
Code:
objEingabe.Media = objBild[var1][var2][var3]
Auf die Idee, es mal so zu versuchen, bin ich gekommen, als ich eine erste Antwort vom Support der Wherigo App bekommen hab. Der sagte mir, dass es Probleme geben kann, wenn man media objects überschriebt, weil die häufig mit den ursprünglichen Bilddaten verknüpft bleiben (zumindest hab ich das mit meinem rostigen Englisch so verstanden). MMn sollte dann aber zumindest ein falsches Bild angezeigt werden, aber
Es LÄUFT NICHT auf dem iPhone.

Variante 3: Die hatte ich ganz am Anfang mal drin gehabt, wollte sie aber durch eine kürzere elegantere Lösung (Variante 1) ersetzen. Hier wähle ich das passende media object in einem ewig langen if-else-gefuddel aus:
Code:
if var1 == 0 then
	if var2 == 0 then
		if var3 == 0 then
			objEingabe.Media = Bild000
		else if var3 == 1 then
			objEingabe.Media = Bild001
			...
		else
			objEingabe.Media = Bild337
		end
	end
end
Wahnsinnig viel schreibarbeit bei 128 Bildern ;)
Aber es LÄUFT!

Die große Preisfrage wäre jetzt aber: Warum kommt das iPhone bzw. die Wherigo App nicht mit solchen tables of tables of tables klar, WhereYouGo / OpenWig aber schon?

Najagut, ich dachte einfach, ich lasse die Allgemeinheit mal an meiner Erkenntnis teilhaben. ;)

Schönen Tag noch!
 

bodenseepingu

Geomaster
An Probleme mit mehrdimensionalen Tables glaube ich nicht - vielleicht kann ein I-Phone-Besitzer mal meinen Play-Anywhere "rette die Million" anspielen -
http://coord.info/GC2W95A

hier verwende ich folgenden Code (2-dimensionale Tables):
Code:
var_fragen[1] = {}
var_fragen[1].anzahl = 3
var_fragen[1][1] = {}
var_fragen[1][1].ftext = "Wie heisst die Blaetterteigrolle mit Schlagsahne ?"
var_fragen[1][1].richtige_antwort = 4
var_fragen[1][1].antworten = {}
var_fragen[1][1].antworten[1] = "blabla"
var_fragen[1][1].antworten[2] = "blabla"
var_fragen[1][1].antworten[3] = "blabla"
var_fragen[1][1].antworten[4] = "blbla"

var_fragen[1][2] = {}
var_fragen[1][2].ftext = "In welchem Film spielte Harrison Ford einen US Praesidenten ?"
....

Vielleicht ist es eher die Art der Initialisierung.

Übrigens: Dein Code dürfte Probleme mit Speichern und Wiederladen haben oder?
Wenn du auf die Tables verzichtest, dann nicht mehr...
 

bodenseepingu

Geomaster
Kansu_Makugen schrieb:
Moinsen,

hi
Wahnsinnig viel schreibarbeit bei 128 Bildern ;)
Aber es LÄUFT!

Schön - eine wesentlich kürzere Variante (zu spät?) könnte ich Dir nennen - du hast gute Chancen, daß dieses auf dem I-Phone läuft - sie läuft aber definitiv nicht auf dem Android.

Hier gibts unter dem Thread http://www.geoclub.de/viewtopic.php?f=74&t=58481&start=10

eine Testcartridge mit Benutzung der Funktion Wherigo.GetAllofType, mit der man alle Objekte eines Typs (z.B. ZMedia) durchloopen kann -- einfach dann den Namen überprüfen und wenn er passt das Objekt mit return zurückgeben....

Wenn die Testcartridge auf dem I-Phone funktioniert, dann kriegen wir dein Problem in sagen wir mal gut 10 Zeilen Code gelöst....insbesonders wenn du deine Bild-Objekte systematisch benamst hast...

also könntest du für Garmin und Android deine bisherige Funktion verwenden und einfach für I-Phone die neue (man kann den Player mit einer Wherigo-Funktion abfragen bzw. geht glaub sogar direkt mit Urwigo.)
 

bodenseepingu

Geomaster
na dann haben die I-Phone Wherigo-Entwickler ja noch einiges zu tun - wär schön, wenn irgendjemand denen auch mal Bescheid gibt - der Player lässt doch stark zu wünschen übrig...meine Cartridges laufen auf Garmin und Android...
 
OP
kansu_makugen

kansu_makugen

Geocacher
bodenseepingu schrieb:
wär schön, wenn irgendjemand denen auch mal Bescheid gibt

Ich hatte dem Herrn Stanley schon vorgestern eine Mail geschickt und das Problem beschrieben. Er wollte es sich mal anschaun.

Bis dahin hab ich ja erstmal ne Lösung (if-elseif-elseif-elseif-elseif-elseif-elseif-elseif-elseif-elseif-elseif :p )
Das Wochenende steht ja vor der Tür und da ist so ein lokaler iPhoniker, der schon ganz heiß drauf ist, einen Wherigo zu machen...
 
OP
kansu_makugen

kansu_makugen

Geocacher
bodenseepingu schrieb:
Vielleicht ist es eher die Art der Initialisierung.

Hmm, das wäre vllt noch ne Möglichkeit. Die tables werden ja nur erstellt, wenn sie "nil" sind
Code:
if objKreuz00 == nil then
   objKreuz00 = {objKreuz000,...}
end
Mal angenommen, die tables sind vorhanden, enthalten aber keine Elemente (objKreuz00 = {}), wäre dann "objKreuz00 == nil" true? Müsste ich mal testen...
 

bodenseepingu

Geomaster
Kansu_Makugen schrieb:
[Bis dahin hab ich ja erstmal ne Lösung (if-elseif-elseif-elseif-elseif-elseif-elseif-elseif-elseif-elseif-elseif :p ).

...eigentlich geht es fast schneller, einen Code-Generator zu schreiben als das runterzuhacken....

Ansonsten geh einfach neue Wege: Wenn der I-Phone Cacher einen Wherigo machen will, soll er zuerst mal das stupide Programmieren übernehmen....der kann ja die Funktion problemlos weiterschreiben, wenn du ihm eine Vorlage mit den ersten 3 elseif's gibst....
 

bodenseepingu

Geomaster
Kansu_Makugen schrieb:
Vielleicht ist es eher die Art der Initialisierung.


...Bei dem oben angesprochenen WIG Rette die Million habe ich die Initialisierung komplett ausserhalb von LUA-Funktionen gemacht....

soll heißen
  • einfach die Tables im User-Code ausserhalb von Funktionen initialisieren
  • um sicherzustellen, daß die Tables nach einem Speichern wieder geladen werden können, muß die Table in ZVariables vorkommen - das erreicht man dadurch, daß man im Urwigo eine Variable anlegt (z.B. als String), die dann im User-Code mit einer Table überschrieben wird - diesen Trick habe ich von Krolock - vorher hatte ich auch Probleme mit Speichern und wieder Laden...
 

xxmurdockxx

Geomaster
bodenseepingu schrieb:
Ansonsten geh einfach neue Wege: Wenn der I-Phone Cacher einen Wherigo machen will, soll er zuerst mal das stupide Programmieren übernehmen....der kann ja die Funktion problemlos weiterschreiben, wenn du ihm eine Vorlage mit den ersten 3 elseif's gibst....
Nana... :D
Was sind das denn für Töne. ;)

Meiner Meinung nach werden die Smartphones wohl die Haupt-Zielgruppe der WIG werden.
Garmin hat keinen Player mehr im neuen Montana und schöne Geräuscheffekte gehen eh nur mit dem Smartphone oder PocketPC.
 
Oben