varaiable Variablen [gelöst]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

pile

Betreff: varaiable Variablen [gelöst]

BeitragDo, Feb 05, 2009 10:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich möchte meinen das es geht, komme aber selbst nicht drauf. Also ich möchte, dass Variablen-Namen variabel sind. Als Beispiel, wie ich es mir vorstelle:

Code: [AUSKLAPPEN]
for i=1 to 3
   MaskImage "Bild_" + i ,202,155,195
next


Also alle Bilder heißen bei mir z.B. Bild_ und dann kommt die jeweilige nummerierung also Bild_1 usw. Wie mache ich diese Nummerierung variabel? Danke schonmal.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%
  • Zuletzt bearbeitet von pile am Do, Feb 05, 2009 12:00, insgesamt einmal bearbeitet

Xaymar

ehemals "Cgamer"

BeitragDo, Feb 05, 2009 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
mit Types( oder Dims).

Bsp:
Code: [AUSKLAPPEN]
Type Image
   Field Name$
   Field ID
End Type

Function SetNewImage(Name$, Image)
   Img.Image = New Image
   Img\Name$ = Name$
   Img\ID = Image
End Function

Function GetImage(Name$)
   For Img.Image = Each Image
      If Lower(Img\Name$) = Lower(Name$)
         Return ID
      EndIf
   Next
   Return 0
End Function

Function DeleteImage(Name$)
   For Img.Image = Each Image
      If Lower(Img\Name$) = Lower(Name$)
         FreeImage Img\ID
         Delete Img.Image
         Return 1
      EndIf
   Next
   Return 0
End Function


Auf deinen Code übertragen:
Code: [AUSKLAPPEN]
For I = 0 To 3
   MaskImage GetImage("Bild_"+I),202,155,195
Next
Warbseite

pile

BeitragDo, Feb 05, 2009 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Super Danke, ich denke das ich es so hinbekommen werde.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

ToeB

BeitragDo, Feb 05, 2009 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein Types sind da völlig sinnlos, wenn man schon weiß wie viele bilder man haben möchte. Array sind da viel besser, schneller, und unkomplizierter abzufragen :
Code: [AUSKLAPPEN]
Dim Bild_(BilderAnzahl-1)
For i = 0 to BilderAnzahl-1
Bild_(i) = LoadImage("Bild_"+i+".png")
MaskImage Bild_(i),255,0,255
Next


Und wenn du trotzdem auf Types bestehst, mach das nicht mit Strings, die sind langsam und völlig unötig dafür, nimm einfach die Zahl :
Code: [AUSKLAPPEN]
Type img
Field img
Field var
End Type

For i = 1 to BilderAnzahl
i.img = New img
i\img = LoadImage("Bild_"+i+".png")
i\var = i
Next

For i = 1 to BilderAnzahl
MaskImage GetImage(i),255,0,255
Next

Function GetImage(Nr)
For i.img = Each img
If img\var = Nr Return img\img
Next
End Function



was aber wieder aufs gleiche rauslaüfzt wie auf Arrays.

Also : Nimm arrays, die sind einfacher zu verwalten Wink

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

pile

BeitragDo, Feb 05, 2009 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Dank dir, der Code ist wirklich ziemlich einfach zu verstehen und anzuwenden.
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

FireballFlame

BeitragDo, Feb 05, 2009 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
@ToeB: Dein zweiter Code geht nicht; i kann nicht gleichzeitig Zähler für die Schleife und Typevariable sein Wink
Also eher: Code: [AUSKLAPPEN]
Type img
   Field img
   Field var
End Type

For i = 1 To BilderAnzahl
   n.img = New img
   n\img = LoadImage("Bild_"+i+".png")
   n\var = i
Next
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group