Seite 2 von 2

Verfasst: 03.10.2006 13:11
von #NULL
ich wollte
gar nicht die einzelen Werte ausgeben haben, sondern die Werte in EINEM
einzigen Array Speichern, also:

In Array aabb 1,10,2,20,3,30

..
Also eine Array wo alle Werte drin sind, die direkt auslesbar ist,
ohne die genaueren angaben welche Werte man auslesen soll.

:?
*nix verstehn*

Verfasst: 03.10.2006 13:14
von edel
Laut Source uebergibst du ein Array das dann mit den Daten gefuellt wird.
Was du am Ende dafuer benutzt, also Array oder ne strukturierte Variable,
ist voellig wurst.

Edit:
okay , jetzt war ich zu lahm ...

Verfasst: 03.10.2006 13:21
von lol
@ Kaeru Gaman

das hab ich zu spät entdeckt, ich wollte das ungefair so haben:
aabb(0) - keinen weiteren Index, sonderen es sollte nur bei 0 bleiben.
Und das per Suffix wollte ich auch lassen, nur das ich aabb eingeben muss
und dann die Werte direkt habe... Danke!
Ebenfalls ein Denkfehler von mir!



@ #NULL

Wie soll ich es dir und den anderen erklären...
ich kanns einfach nicht richtig erklären, sry!

Ein Array z.b. aabb(0)
der den Wert hat von 1,10,2,20,3,30 - so sollte er es mir ausgeben,
aber zum glück gibts ja noch andere möglichkeiten, die Sinnvoll sind!
( edel und Kaeru Gaman haben mich drauf gebracht und hingewiesen
das ich ein totalen Denkfehler gemacht habe - DANKE! )

@ edel

Das hab ich nun auch endlich gemerkt, kommt wohl vom Kater heute ^^

Danke!

Verfasst: 03.10.2006 13:45
von #NULL
also..
array() wäre ein array, bzw die adresse des ersten elementes
array(0) wäre eine position im array (in dem fall die selbe/ die erste) ..also die adresse + offset

das gleiche für structures
StructuredVar() ..[erste] adresse der var, bzw adresse des ersten feldes
StructuredVar()\field2 ..adresse + offset
..

in beiden fällen hast du einfach einen speicherblock, der die selben werte beinhalten kann. du kannst über ein array oder eine struktur darauf zugreifen. wenn eine procedure ein array oder dergleichen verlangt, verlangt sie ja eigentlich nur einen pointer. und den speicher auf den gezeigt wird behandelt die proc einfach so wie sie will (größe und offsets). ob außerhalb der procedure auf den speicher durch arrays, strukturiert variablen oder einfach grobe peeks'n'pokes zugegriffen wird ist ihr egal.

Verfasst: 04.10.2006 17:57
von Brügge
also ich würde das so machen:

structure aufgaben
min.d
max.d
...
endstructure

dim aabb.aufgaben(6)

wenn du jetzt eine lesen willst dann geht das so:

aabb(4)\min = 12

Verfasst: 05.10.2006 01:19
von edel
Wenn du das so machen moechtest kannst du das natuerlich gerne tun,
der Befehl verlangt aber nur eine Struktur mit 6 Feldern.

Verfasst: 05.10.2006 09:47
von NicTheQuick
lol hat geschrieben:@ Kaeru Gaman

das hab ich zu spät entdeckt, ich wollte das ungefair so haben:
aabb(0) - keinen weiteren Index, sonderen es sollte nur bei 0 bleiben.
Und das per Suffix wollte ich auch lassen, nur das ich aabb eingeben muss
und dann die Werte direkt habe... Danke!
Ebenfalls ein Denkfehler von mir!
Was ist mal dazu sagen wollte: "lol!?"

Wie willst du sechs verschiedene Werte ohne Index und ohne Suffix
unterscheiden? Willst du, dass aabb(0) nacheinander 1, 10, 2, 20, 3, 30 ist?
Wie soll das bitteschön funktionieren?

Du brauchst entweder einen Index oder einen Suffix.

Hier das Beispiel mit einer Structure:

Code: Alles auswählen

Structure aabb
  minx.d
  maxx.d
  miny.d
  maxy.d
  minz.d
  maxz.d
EndStructure

aabb.aabb
aabb\minx = 1
aabb\maxx = 10
aabb\miny = 2
aabb\maxy = 20
aabb\minz = 3
aabb\maxz = 30

Procedure.d Ode_GeomGetAABB(GeomID, *aabb2.aabb)
 Debug *aabb2\minx
 Debug *aabb2\maxx
 Debug *aabb2\miny
 Debug *aabb2\maxy
 Debug *aabb2\minz
 Debug *aabb2\maxz
EndProcedure

Ode_GeomGetAABB(0, aabb)
Hier ein Beispiel mit Array und Indices:

Code: Alles auswählen

Dim aabb.d(5)
aabb(0) = 1
aabb(1) = 10
aabb(2) = 2
aabb(3) = 20
aabb(4) = 3
aabb(5) = 30

Procedure.d Ode_GeomGetAABB(GeomID, aabb2.d(1))
 Debug aabb2(0)
 Debug aabb2(1)
 Debug aabb2(2)
 Debug aabb2(3)
 Debug aabb2(4)
 Debug aabb2(5)
EndProcedure

Ode_GeomGetAABB(0, aabb())
Und ein Beispiel mit Array und Structure:

Code: Alles auswählen

Structure aabb
  minx.d
  maxx.d
  miny.d
  maxy.d
  minz.d
  maxz.d
EndStructure

Dim aabb.d(5)
aabb(0) = 1
aabb(1) = 10
aabb(2) = 2
aabb(3) = 20
aabb(4) = 3
aabb(5) = 30

Procedure.d Ode_GeomGetAABB(GeomID, *aabb2.aabb)
 Debug *aabb2\minx
 Debug *aabb2\maxx
 Debug *aabb2\miny
 Debug *aabb2\maxy
 Debug *aabb2\minz
 Debug *aabb2\maxz
EndProcedure

Ode_GeomGetAABB(0, @aabb())
Und wenn du jetzt immer noch ein Problem hast, dann kann dir keiner
helfen, weil es nicht geht und völlig falsch gedacht ist.

Verfasst: 05.10.2006 18:48
von lol
Ähm... es war ein dummer Denkfehler von mir gewesen...

*G* ja das wollte ich eigentlich so haben, aber....
ich habs ja dank euch (wieder) herraus gefunden,
DANKE!

--

Ähm.. also mit der Materie kenn ich mich wohl aus, es war nur
ein dä(!H!)mlicher Fehler von mir...

Sonst probier ich auch immer alles aus bis es so funktioniert wie
ich es gerne hätte, nur diesesmal hab ich euch um Rat geben da man
sich dadurch echt viel Zeit sparen kann ..^^

Danke nochmals an alle!