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

Verständnisfrage Objekt mit lua verschieben (Moveto:)

BabaYaga

Geonewbie
Hallo liebe Gemeinde.
Ich lese hier nun schon eine ganze Weile interessiert aber stillschweigend mit.
Jetzt bin ich aber an einem Punkt an dem ich hier doch mal um einen Rat fragen muss.

Ich habe mir mit einer kleinen Lua-Funktion ein table erstellt welches als Werte die Zahlen 1 bis 12 in zufälliger Reihenfolge enthält.
Wahrscheinlich geht dies viel einfacher als ich das gelöst habe, aber ich wollte gern meine eigene Lösung finden, und funktionieren tut das soweit auch erstmal.


Feldalt = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
Feldneu = {}
z = 12 -- der Wert begrenzt den Zufallsbereich und wird nach jedem Durchgang um 1 verringert, da Feldalt auch 1 kuerzer wird

while z > 0 do
local wert = math.random(z)
table.insert (Feldneu, Feldalt[wert])
table.remove (Feldalt, (wert))
z=z-1
end

Zu diesen 12 Feldern habe ich auch 12 Gegenstände, welche ich nun mit Hilfe der Tabelle Feldneu {} auf meine Felder verteilen will.

Gegenstand1:MoveTo(Feld1)
funktioniert dafür als feste Zuweisung natürlich (Kennung habe ich so festgelegt), ich möchte aber erreichen
das statt
Gegenstand(Feldneu[1]) bzw statt
(Feld(Feldneu[1])) funktioniert.

An der Stelle bin ich mit meinem Latein (oder viel mehr mit meinem bescheidenen Verständnis für Lua) am Ende.
Egal was ich auch versuche, er funktioniert einfach nicht.
Falls mir jemand einen Tipp geben könnte, und wenn es auch nur ein "das funktioniert so einfach nicht" ist, wäre ich sehr dankbar.

Das hab ich doch nun glatt vergessen.... ich bastle mit URWIGO
MfG BabaYaga
 

capoaira

Geomaster
Ich denke es müsste mit
gegenstand[1]:MoveTo(Feld1)
Allerdings habe ich soetwas noch nie gemacht.
Ansonsten musst deine eigene Funktion schreiben.

function moveItemToField(item, field)
if item == 1 then
Gegenstand1:MoveTo(field)
end
end

(Gibt es für lua eigentlich switch?)

Gruß capoaira

PS.: ich habe den Beitrag mit dem Handy geschrieben. Ist also mehr eine Idee als eine zuverlässige Lösung ;)
 
OP
B

BabaYaga

Geonewbie
Hallo capoaira,

vielen Dank für deine Unterstützung.
Leider hilft mir das auch nicht wirklich weiter.
Sobald ich versuche eine Variable bzw einen Tabellenwert einzubinden alla *gegenstand[1]:MoveTo(Feld1) * gibt es einen Absturz.
Dann habe eine versucht den korrekten string (* gegenstand1:MoveTo:(Feld1) *) mittels Verkettungen in eine Variable zu schreiben und dann diese aufzurufen.
Auch das funktioniert leider nicht. Sicherlich habe ich da irgendwo nen Denkfehler.

Ich habe das jetzt erstmal mit viel Schreibarbeit und noch mehr if elseif elseif….. gelöst.
Nicht schön, aber funktioniert erstmal.

MfG BabaYaga
 
Oben