variabeln ändern
Übersicht
BlitzBasic
Beginners-Corner
JeyBetreff: variabeln ändern |
Antworten mit Zitat |
|
|---|---|---|
|
Ich habe wieder mal ein seltsames problem, und zwar habe ich eine funktion zum mapladen aus einer textdatei. Als Operatoren, möchte ich den namen der zu ladenden Map angeben können und den Namen der Dim in der sie gespeichert wird.
Also so etwa: Code: [AUSKLAPPEN] Function load_map(map_name$, dim_name$)
Text 400,300,"LOADING MAP...",1 karte$ = ReadFile("Map\"+map_name$+".map") ;Map angaben Tilebreite = ReadLine(karte$) Tilehoehe = ReadLine(karte$) Tileanzahl1 = ReadLine(karte$) Tileanzahl2 = ReadLine(karte$) Mapbreite = ReadLine(karte$) Maphoehe = ReadLine(karte$) For x = 0 To mapbreite For y = 0 To maphoehe ;layer1 dim_name$(x,y,0) = ReadInt(karte$) ;layer2 dim_name$(x,y,1) = ReadInt(karte$) ;layer3 dim_name$(x,y,2) = ReadInt(karte$) Next Next CloseFile(karte$) End Function Die Array dim_name$ kennt er aber so ja nicht. Also bräuchte ich eine Möglichkeit aus einem string eine variabel zu machen. Hoffe das war verständlich und kein Unsinn |
||
Omenaton_2 |
Antworten mit Zitat |
|
|---|---|---|
|
Ein DIM muß erst deklariert werden, bevor du Werte zuweisen kannst.
Also, DIM dim_name$(Mapbreite, Maphoehe,1) ... dann erst sie Werte aus Datei auslesen und in DIM hineinschreiben. Außerdem, du mußt nicht unbedingt immer alles als String auslesen, du kannst ja auch gleich Ziffern nehmen, aber das ist kein Problem. Du mußt nur deinen eigenen Karten-File-Format genau kennen, wann Zahlen und wann Strings geschrieben und gelesen werden sollen. Du kannst sie mischen, mußt nur beim Lesen auf die richtige Reihenfolge achten. Bei dieser Sache bin ich mir jetzt nicht so sicher, aber ich glaube mir war schon früher aufgefallen, daß BlitzBasic die Sachen mit der Integer aus String lesen nicht so streng nimmt, es geht also viel einfacher als man denkt aus einem String einen Zahlenwert zu bekommen. ************************************* Ok, ich habe nochmal nachgeschaut und das geht so doch nicht, da BlitzBasic das (soweit ich es weiß) nicht erlaubt, einen DIM (oder gar eine BANK) mit einem aus einem anderen Variablen aus stammenden Namen zu versehen. Das geht leider nicht. Sowas hätte ich auch schon mal gebraucht. Man muß tricksen. Wenn du gleichzeitig nur einen Map in deinem Programm anzeigst, dann ist es einfach. Dann nimmst du immer einen default Namen. Wenn du zwar mehr als nur einen, aber eine begrenzte Anzahl (so 2-20) Maps auf ein Mal verwalten willst, dann kannst du einfach in einer herkömlichen Select oder IF Then Schleife je nach Map ID (jede Map bekomt eine ID Nummer) eine passend benannte Dim erschaffen. So: Select map_IDnummer Case 1 : Dim dim_N1$(Mapbreite, Maphoehe,1) Case 2 : Dim dim_N2$(Mapbreite, Maphoehe,1) ...und so weiter... End Select Anzeigen kannst du den tatsächlichen String Namen, aber intern arbeitest du nur mit ID-Nummer, nicht mit Strings. Das alles ist so nicht schön, aber leider klappt es nicht so wie man es gerne hätte. |
||
Jey |
Antworten mit Zitat |
|
|---|---|---|
| Dank dir, ich hätte es jetzt wahrscheinlich sowieso so gemacht. Ist zwar nicht so schön wir ich mir das vorstellte, aber scheinbar ist das nicht anderst machbar. | ||
Übersicht
BlitzBasic
Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group
