Identität eines kopierten 3D-Objekts (=> Editor)
Übersicht

![]() |
Dice of DarknessBetreff: Identität eines kopierten 3D-Objekts (=> Editor) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
ich programmiere gerade mein erstes 3D-Spiel und bin dabei, mir einen Editor zu basteln, mit dem ich später Objekte beliebig oft kopieren und in die Spielwelt setzen kann. Angefangen habe ich mit einem Objekt, das ich jetzt per Klick auf [Enter] beliebig oft kopieren, neu positionieren und bewegen können will. Um die geklonten Objekte zu verwalten, nehme ich einen Type: Code: [AUSKLAPPEN] Type box
Field number End Type Hiermit erstelle ich ein neues Objekt: Code: [AUSKLAPPEN] If KeyHit(28) Then
box.box = New box box\number = num h = CopyEntity(matchbox) PositionEntity h,0,0,num EndIf Die Variable "num" kann ich mit den Tasten 1 und 2 erhöhen bzw. erniedrigen. Damit wähle ich sozusagen aus, welches Objekt ich verändern möchte (denn der Wert von "num" wird in dem Feld "box\number" gespeichert). ![]() Code: [AUSKLAPPEN] For box.box = Each box
If KeyDown(17) And box\number = num Then MoveEntity h,0,0,0.2 ElseIf KeyDown(31) And box\number = num Then MoveEntity h,0,0,-0.2 EndIf Next Wenn ich also drei neue Objekte erstellt habe, so müssen diese im Feld "box\number" jeweils eine 1,2 oder 3 haben. Wenn ich jetzt den Wert "num" auf 2 setze und "W" drücke (vorwärts bewegen), müsste sich eigentlich das zweite Objekt bewegen, denn es heißt ja "If KeyDown(17) AND box\number = num". Nur bewegt sich jetzt leider immer das zuletzt erstellte Objekt, egal was ich für "num" für einen Wert wähle... Mache ich irgend einen grundsätzlichen Fehler, d.h. muss ich die Identität jedes kopierten Objekts anders festlegen und abfragen? Vielen Dank schonmal im Voraus, Dice Of Darkness |
||
Gratis Spiele, Musik, Tools |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: For box.box = Each box
If KeyDown(17) And box\number = num Then MoveEntity h,0,0,0.2 ElseIf KeyDown(31) And box\number = num Then MoveEntity h,0,0,-0.2 EndIf Next Was ist h? h ist immer das zuletzt erstellte Objekt. ![]() Also wird nur das sich bewegen. Du solltest jedes Objekt mit im Type speichern. Also so: Zitat: Type box
Field number Field mdl End Type Dann natürlich Code: [AUSKLAPPEN] If KeyHit(28) Then
box.box = New box box\number = num box\mdl = CopyEntity(matchbox) PositionEntity box\mdl,0,0,num EndIf usw.... Ich hoffe ich konnte behilflich sein ![]() |
||
![]() |
Dice of DarknessBetreff: DANKE! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, super jetzt klappt es einwandfrei!
Ich hatte mir schon gedacht, dass es daran liegen würde, und ich möchte meinen, ich hatte das mit dem zweiten Feld bereits schon ausprobiert und es hatte damals nicht geklappt... Naja jetzt klappt es ja^^! Danke vielmals! |
||
Gratis Spiele, Musik, Tools |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group