Variable im Variablennamen?
Übersicht

![]() |
derAtomkeksehemals "Sethus"Betreff: Variable im Variablennamen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
HI, kann man irgendwie in einem Variablennamen mithilfe von variablen machen?
Also ich meine das so: for i=1 to 5 dim feld+i(2) next das ich dann da 5 Felder rausbekomme: feld1, feld2,feld3, feld4,feld5 Ich hoffe ihr versteht was ich meine? |
||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe mir da auch schonmal gedanken drüber gemacht, und meineransicht geht es nur ein bischen kompliziert....
man köntne es zum beispiel mit types mit dem namen var machen, in denen name und wert gespeichert sind, oder vllt mit banks.... |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Soweit ich weiß ist das nicht möglich.
Um mehrere Daten zu speichern gibts Dims und Types. SteveO [Edit] Mist zu spät. |
||
Pixelgenaue 2D SingleSurface Engine!!! |
![]() |
derAtomkeksehemals "Sethus" |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber es müssen x verschiedene felder sein die jeweils y viele einträge haben. | ||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Zitat: kann man irgendwie in einem Variablennamen mithilfe von variablen machen?
nein, das geht überhaupt nicht! Wenn dann so.. Code: [AUSKLAPPEN] Dim Feld(5) ;jetzt kannst du jedes einzen ansprechen mit Feld(1) = 10 Feld(2) = 20 ;usw Und abgesehen davon gehört das bestimmt in den Beginners-Corner! |
||
[BB2D | BB3D | BB+]
|
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dims gehen doch auch mehrdimensional.
z.B. Dim feld(10,5,1) SteveO |
||
Pixelgenaue 2D SingleSurface Engine!!! |
![]() |
derAtomkeksehemals "Sethus" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das problem ist aber das es eine unbestimmte anzahl von feldern geben soll. Und ein Dim feld dimensioniert man einmal dann ist die Größe festgelegt und nicht mehr änderbar, oder? | ||
trapper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann werden dir Types weiterhelfen. Wenn du dich deren bedienst, wirst du eine vorher unbestimmte Menge von "Variablen" anlegen können. | ||
![]() |
derAtomkeksehemals "Sethus" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte auch schon an Types gedacht, nur ich brauche auch eine unbestimmte anzahl von einträgen in den Types.
Es müsste sowas wie ein Type im Type geben. |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
In diesem Fall solltest du (ernsthaft) den Aufbau deiner Datenstrukturen überdenken. Ich weiß ja nicht, was für ein Problem du lösen willst, aber mir persönlich ist noch keins unter die Finger gekommen, wo so ein komplexer Datentyp notwendig gewesen wäre.
MfG D2006 |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Übrigens ist nach dem Dimensionieren ein Array immer noch änderbar. Du kannst es ganz einfach redimensionieren.
Beispiel: Code: [AUSKLAPPEN] Dim bla(5)
Dim bla(10,20,30) ;funktioniert Du bist dabei keinesfalls an die alte Struktur des Arrays gebunden. Für eine unbekannte Zahl solltest du für die Dimensionen Variablen einsetzen und dann gegebenfalls redimensionieren. Wenn du allerdings die alten Daten des Arrays behalten willst, ist dir nicht zu helfen. |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
~VERSCHOBEN~ Types sind anfänger sachen man könnte auch banks nehmen Jan_ |
||
between angels and insects |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
oder machst wirklich nen Type im Type:
Type Tparent field child.Tchild End Type Type Tchild field variable End Type Parent.Tparent=New Tparent Parent\child.Tchild=New Tchild Parent\child\variable=10 Parent\child.Tchild=New Tchild Parent\child\variable=20 MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
derAtomkeksehemals "Sethus" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wie ruft man dann alle Childs in einem Parent ab? Ich meine mit for ... next | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
garnicht,
sondern Recursiv. Rekursiv, heißt, eine Function die sich selber aufruft. in der machste nen For next, http://blitzbase.de/befehle3d/countchildren.htm For i=1 to countchildren(entity) http://blitzbase.de/befehle3d/getchild.htm blub=getchild(entity,i) rekfunction(blub) next |
||
between angels and insects |
![]() |
derAtomkeksehemals "Sethus" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann kommt bei mir "Illegal Type Conversion". Und was ist Rekfunction? Den Befehl gibts doch garnicht, auf jeden fall nicht in blitz3D | ||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was Jan_ dir gab ist ein Dummy-Code, also nichts was du kopieren und in deinen Code einfügen kannst.
RekFunction(blub) soll in dem Fall die oben genannte rekursive (sich selbst aufrufende) Funktion darstellen. Die mußt du dir selbst schreiben. Ich möchte dir hier ans Herz legen, mal über dein Problem selbst nachzudenken, sonst wirst du es wahrscheinlich nie verstehen. cheers |
||
![]() |
derAtomkeksehemals "Sethus" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, ich setze mich jetzt in mein stilles Kämmerlein und lese und überlege... ![]() |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
oh, ich hatte dich etwas fortgeschrittener erwartet,
Hier was zum testen, solllte Funktionieren, Übergebe einfach dein Mesh mit den Children: Code: [AUSKLAPPEN] mesh = loadmesh("meinmodel.3ds")
rekfunction(mesh) So, und nun die Funktion: Code: [AUSKLAPPEN] function rekfunction(entity) Local Blub if countchildren(entity) then For i=1 to countchildren(entity) blub=getchild(entity,i) ;hier kommt die veränderung des Childs hin rotateentity blub,rand(360),rand(360),rand(360) ; kleines Beispiel, alles sollte jetzt wie verrückt verdreht sein rekfunction(blub) next endif end function |
||
between angels and insects |
![]() |
derAtomkeksehemals "Sethus" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das kann ich sicher gut gebrauchen, aber diese Funktionen (getchild etc.) funktionieren nur mit entitys. Hab mich vielleicht vorher etwas falsch ausgedrückt ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group