Hey Developer,
ich habe eine kleine Frage: Und zwar würde es mich immens an Code sparen, wenn ich Parameter in Funktionen verwenden könnte. Ich meine es ungefähr so:
function name(parameter_1,parameter_2)
--Code
bild:draweasy(x[parameter_1],y[parameter2])
end
Ich hoffe jemand versteht was ich meine. So könnte ich dann im Script etwas für parameter_1 und parameter_2 einsetzen, das dann automatisch hinter dem x und dem y unten erscheint.
Geht soetwas und wenn ja wie?
Gruß,
Sunny
Ja, dass geht.
Ich schreibe von der PSP deswegen wurde eine Erklarung zulang dauern, aber schau dir mal die functions.lua von meinem HB PSPOKEMON GREY an, da verwende ich das ofters.
Wie meinst du das?
Ist doch schon in deinem Beispiel richtig angegeben, du willst einer Funktion Parameter übergeben:
function name(parameter_1,parameter_2)
bild:draweasy(x..parameter_1,y..parameter2)
end
aufruf
name(5,5)
@Blacky94:
Das geht nicht, da spuckt er eine Fehlermeldung aus und sagt er hätte gerne ein "=" anstelle des "..".
@shaplayer:
Wenn ich deinen Code richtig verstehe müsste es nämlich auch mir eckigen Klammern funktionieren.. Tuts aber nicht. Am besten poste ich mal den Code:
c_nr = 1
comet_status[c_nr] = 0
function comet(c_nr,c_startX,c_startY,c_endX,c_endY,c_stepX,c_stepY)
if comet_status == 0 then
currentX[c_nr] = c_startX[c_nr]
currentY[c_nr] = c_startY[c_nr]
if currentX[c_nr] == c_startX[c_nr] and currentY[c_nr] == c_startY[c_nr] then
comet_status[c_nr] = 1
end
end
if comet_status == 1 then
currentX[c_nr] = currentX[c_nr] + c_stepX[c_nr]
currentY[c_nr] = currentY[c_nr] + c_stepY[c_nr]
if c_endX[c_nr] >= c_startX[c_nr] then
if currentX[c_nr] >= c_endX[c_nr] then
comet_status[c_nr] = 0
end
else
if currentX[c_nr] <= c_endX[c_nr] then
comet_status[c_nr] = 0
end
end
if c_endY[c_nr] >= c_startY[c_nr] then
if currentY[c_nr] >= c_endY[c_nr] then
comet_status[c_nr] = 0
end
else
if currentY[c_nr] <= c_endY[c_nr] then
comet_status[c_nr] = 0
end
end
end
stone:draweasy(currentX[c_nr],currentY[c_nr],rotation_fast,255)
end
ich würde nun einfach gerne erreichen, dass ich für "c_nr" im Script einfach eine Zahl einsetze und der mir dann halt diese Zahl an die sämtlichen Parameter ranhängt. Würde um die 700 Zeilen Code sparen, deshalb von größerer Bedeutung
Moin,
wie meinst du das mit ranhängen? Im sinne von dahinterschreiben?
Nach dem Motto:
1234 hänge 5678 dran dass 12345678 rauskommt?
ich verstehe nicht ganz was du meinst
Edit:
Die eckigen klammern sind normalerweise für Arrays/Listen, also ich kenne mich mit Lua nicht so kenne ich dass aus andren Sprachen..
E2:Ich glaube langsam versteh ich was du meinst..
du hast also sozusagen viele variablen
x1, x2, x3, x4, x5
und willst nun jeweils eine davon ansprechen in dem du eine weitere Varible hast, nennen wir sie z und dann im Script bestimmst, z=1 und dadurch der ausdruch
zu
wird?
Ob das geht weiß ich nicht aber da würd ich dann Arrays(="Listen") empfehlen, den genauen Syntax kenn ich zwar nicht, aber müsste in so in etwa gehen:
xWertListe[5] = {1,6,2,7,9}
Dann kannst du mit
n = 0 oder n=1 ...
xWertListe[n]
jeweils das n-te element ansprechen, wobei die Nummerierung bei 0 beginnt.
In diesem Falle wäre also xWertListe[1] 6
Anmerkung: Wie schon gesagt, den genauen Syntax kenne ich nicht von Lua, aber so in etwa müsste es sein, kannst ja nochmal nachlesen..
mfg Gigor
Jupp, genau das mein' ich
So hab jetzt ne weile rumeditiert, aber jetzt bin ich fertig
jeweils das n-te element ansprechen, wobei die Nummerierung bei 0 beginnt.
In diesem Falle wäre also xWertListe[1] 6
Anmerkung: Wie schon gesagt, den genauen Syntax kenne ich nicht von Lua, aber so in etwa müsste es sein, kannst ja nochmal nachlesen..
Bei Lua fängt der Index meines wissens nach schon bei 1 an ;o
Sorry, ich habe deine Frage nicht richtig verstanden und wusste nicht das es hier um Tabellen/Arrays geht. Ist das Problem den schon gelöst oder kommt noch eine Fehlermeldung?
Leider funktioniert alles nicht. Ich habe lange daran rumprobiert, jedoch nicht mehr so viel Zeit mich intensiv damit zu beschäftigen. Wird der Code halt etwas länger und unschöner, das funktioniert dann jedoch auch wenigstens.
Danke trotzdem, schade dass es nicht geklappt hat.