Seite 1 von 1

Variable via String ändern?

Verfasst: 23.08.2008 16:57
von Milchshake
Hi,
erstmals möchte ich mich für den Threattite entschuldigen, mir ist kein besserer eingefallen.
So nun zum eig, Problem - ich hoffe ich kann es euch Verständlich machen.
Ich will via einen String die Variable ändern, also wenn der StringName und der Variablenname gleich sind, soll sich die Variable gleich 1 sein.

Aber wofür überhaupt?
Ich programmiere grad ein Spiel und bin jetzt bei den Triggern angekommen. Für die Trigger
benutze ich eine eigene Liste - dementsprechend auch eine eigene Structur. Wenn ich jetzt einen Trigger der Liste hinzufüge, will ich nicht für jeden Trigger\Bezeichnung eine eigen If Anwendung schreiben.
Beispiel:

Code: Alles auswählen

If Trigger()\Bezeichnung = 1
  VariableB = 1
endif 
if Trigger()\Bezeichnung = 52
 VariableDF = 1
endif 
Ich hoffe meine Frage ist verständlich - bestenfalls auch Lösbar.
Greez Milchshake

Verfasst: 23.08.2008 17:31
von STARGÅTE
verwende doch Arrays ?

Wenn das StringArray und VariableArray die gleichen Felder haben wir deine Variable 1

dann braust du nicht irgendwelche Namen vergleichen sonder einfach nur Indizes

Verfasst: 23.08.2008 17:50
von ZeHa
Und statt den Indizes kannst Du dann Konstanten verwenden, wodurch Du wieder Deine Namen hast.

Ansonsten wäre auch eine sog. Map bzw. Dictionary denkbar, nur gibt's das in PB leider nicht nativ. Irgendwann vielleicht... da könnte man dann als Index eine 32-Bit-Variable benutzen und diese mit 4 ASCII-Zeichen "benennen", also z.B. 'TEST' (wird durch die einfachen Anführungszeichen einfach in eine Long-Variable konvertiert). Das wäre dann schneller als wenn man einen String als Index nimmt (was aber auch möglich ist bei einer Map).

Verfasst: 24.08.2008 12:54
von Kaeru Gaman
das mit dem Array sähe so aus:

Code: Alles auswählen

Flag( Trigger()\Bezeichnung ) = 1
ich verstehe jetzt auch nicht den sinn, warum zig variablen einen 1 wert bekommen sollen....

dafür hast du ja die Trigger-Liste, damit du nicht zig Variablen brauchst.