Flexible Variablennamen möglich?
Übersicht

BackbufferBetreff: Flexible Variablennamen möglich? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute,
ich habe ein Problem, dass mich wahrscheinlich als Anfänger outet ![]() Ich schreibe gerade einen Map-Editor bei dem ich verschiedene Tilesets (1-3) habe die der Benutzer auswählen kann. Dementsprechen gibt es die Variablen Graphikset1, Graphikset2 und Graphikset3. Ich suche nun eine Funktion mit der ich sozusagen die Variable GraphiksetX aufrufen kann, wobei X das ausgewählte Tileset (also 1,2 oder 3) ist. Ist sowas möglich? Danke für die Hilfe |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, Dim macht sowas möglich, nennt sich Array...
Guck dir sonst noch das Variablen und Felder Tutorial auf der selben Seite an. MfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, da BB compiliert wird. es müssen alle Namen explizit bekannt sein. Abhilfe wäre ein scriptsystem oder aber das gute alte Array. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wäre es mit einem Array
Code: [AUSKLAPPEN] Graphikset(1) ;usw damit geht das... |
||
[BB2D | BB3D | BB+]
|
Backbuffer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Holzchopf hat Folgendes geschrieben: Ja, Dim macht sowas möglich, nennt sich Array...
Guck dir sonst noch das Variablen und Felder Tutorial auf der selben Seite an. MfG Na klar, das Array. Hab's schon dutzende Male in meinem Programm verwendet, aber ich bin hier nicht auf die Idee gekommen einfach ein eindimensionales Array zu verwenden ![]() Aber Danke für den Hinweis, jetzt weiß ich bescheid. Edit: Also irgenwie kriege ich dass doch nicht gebacken. Tja zu früh gefreut. Am besten ich kopiere mal die Zeilen. Global gfxtileset1 = LoadAnimImage ("tileset.bmp",50,50,0,45) Global gfxtileset2 = LoadAnimImage ("units.bmp",50,50,0,90) ;hier sind die tilesets Function drawtileset() ; und hier werden sie gemahlt, wie man sieht erfolgt die Auswahl ziemlich behindert mit if then Schleifen If actualtileset = 1 Then n=-1 For x = 0 To 2 For y = 0 To 14 n=n+1 DrawImage gfxtileset1,x*50+874,y*50+18,n Next Next End If ;zeichnet die Terrainbilder If actualtileset = 2 Then n=-1 For x = 0 To 2 For y = 0 To 14 n=n+1 DrawImage gfxtileset2,x*50+874,y*50+18,n Next Next End If End Function ;was ich brächte wäre eine Befehl gfxtilset + actualtileset. aus den gfxtilests arrays zu machen hat mit dem syntax irgendwie nicht geklaptt. |
||
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, du musst doch einbauen, dass wenn die Variable "n" größer als max_frames (das ist die Anzahl der Frames deines Bildes), n = 0 ist, also 45 bzw. 90, oder?
MFG Lador |
||
Backbuffer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Lador hat Folgendes geschrieben: Hi, du musst doch einbauen, dass wenn die Variable "n" größer als max_frames (das ist die Anzahl der Frames deines Bildes), n = 0 ist, also 45 bzw. 90, oder?
MFG Lador Ist schon drinne, n fängt immer bei -1 an und wird genauso oft durchgespult wie es frames gib. Das Programm funktioniert einwandfrei, ich hätte nur gerne die if-then Schleifen beseitigt. |
||
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok sorry, dann mach das so:
- Mach ein Dim-Feld. - Da speicherste dann die Tilesets (1,2 und 3). - Dann machste eben: Code: [AUSKLAPPEN] For x = 0 To 2
For y = 0 To 14 DrawImage gfxtileset(actual_tileset), x*50+874,y*50+18,n n = n + 1 Next Next - Das spart dir das n = -1, sowie eine 2. If-Abfrage^^. Hoffe, das hilft dir. MFG Lador |
||
Backbuffer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für den Vorschlag. ABer irgendwie bekomme ich das mit dem Syntax nicht hin die gfxtileset in ein dim zu speicher und gleichzeitig damit loadanim auszuführen. | ||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
schau dir mal die Befehle in der Onlinehilfe an, Loadanimimage gibt einen Wert zurück, den du in das array Grafikset(x) lädst.
beim laden musst du das aktuelle Grafikset angeben und das dazugehörige image, zb so Drawimage Grafikset(akt_set), x-pos, y_pos, AnimImage_Index |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Backbuffer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen, vielen Dank an alle. Hab's jetzt endlich geschafft. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group