Variablennamen aus strings zusammenbauen

Previous topic - Next topic

ProN3rd

Hey liebe Leute, hab folgendes Problem:

Code (glbasic) Select

SETCURRENTDIR("Media") // go to media files
GLOBAL stage = GENSPRITE(); LOADSPRITE "stage.png", stage

GLOBAL l1stage = GENSPRITE()
GLOBAL l2stage = GENSPRITE()

WHILE TRUE
test(2)
DRAWSPRITE l1stage,100,100
DRAWSPRITE l2stage,300,300
SHOWSCREEN
WEND

FUNCTION test: value
LOCAL dummy$
IF value = 1
dummy$ = "l1"
ELSEIF value = 2
dummy$ = "l2"
ENDIF
dummy$+stage = stage

ENDFUNCTION



der fehler ist die letzte Zeile in der Funktion. Hab schon einiges ausprobiert, auch mit "" bei beiden Variablen aber leider ohne Erfolg. Also wenn ich die Funktion mit 1 aufrufe, soll er l1stage = stage machen und ansonsten eben l2stage = stage, damit das entsprechende Bild zugewiesen wird

kanonet

Hallo, Willkommen im Forum!
Um es kurz zu machen: das geht nicht. Der Name einer Variable muss immer vollständig ausgeschrieben werden, sonst geht es nicht.
Damit man nicht endlos Variablen wie stage1, stage2, stage3,... schreiben muss, gibt es Arrays, hier ein Beispiel wie du vier Einträge im Array stage erzeugst und nutzt, beachte, dass der Computer bei 0 beginnt zu zählen:
Code (glbasic) Select
LOCAL stage[]
DIM stage[3]
stage[0]=1
stage[1]=2
stage[2]=3
stage[3]=4
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

ProN3rd