Mehrfaches positionieren von Objekten?

Übersicht BlitzBasic Blitz3D

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Abenteurer036

BeitragMi, Jan 06, 2010 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber genau das verstehe ich nicht. Kanns mir jemand vielleicht erklären? Vorallem check ich nicht wie ein bestimmtes Objekt einer Zahl im Dimfeld zugeordnet wird Sad
New Project [4%]
Schinken Maker [100%]

Goodjee

BeitragMi, Jan 06, 2010 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
dim hallo(9)
hallo(0)=25
hallo(1)=3

print hallo(0)



zuordnung geht wie mit normalen variablen eg
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Abenteurer036

BeitragMi, Jan 06, 2010 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Und mir fällt es wie Schuppen von den Augen. Danke Very Happy Komisch das ich es bei so einem simplen Beispiel verstehe Rolling Eyes
New Project [4%]
Schinken Maker [100%]

Abenteurer036

BeitragDo, Jan 07, 2010 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe ein neues Problem. Immer wenn ich es mit Data Felder versuche klaptas nicht ich sehe immer nur einen roten Würfel.

Code: [AUSKLAPPEN]
AppTitle"Data Test"
Graphics3D 1280,720,32,2
SetBuffer BackBuffer()

.leveldaten
Data 0,0,0,1,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,1,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,1,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0

Dim level(9,9)

Restore leveldaten

For x = 0 To 9
 For y = 0 To 9
  Read level(x,y)
 If level(x,y)=0
   flo=LoadMesh("Floor.3ds")
   EntityColor flo,255,0,0
 ElseIf level(x,y)=1
   flo2=LoadMesh("Floor.3ds")
   EntityColor flo2,0,0,255
 EndIf
Next
Next

camera=CreateCamera()
light=CreateLight()
CameraRange camera,1,10000
PositionEntity camera,0,20,0
RotateEntity camera,90,0,0
PositionEntity light,0,0,0

Repeat
Cls
UpdateWorld()
RenderWorld()
Flip
Forever

Woran kann das liegen? Sad
New Project [4%]
Schinken Maker [100%]

Holzchopf

Meisterpacker

BeitragDo, Jan 07, 2010 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Daran, dass alle Entities an der exakt gleichen Position liegen.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Midimaster

BeitragDo, Jan 07, 2010 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Du willst ja mehrere Objekte. In den DATAs sind auch mehrere zu sehen. Aber du gibst allen neuen Objekten den immer gleichen Namen FLO2
BlitzBasic: [AUSKLAPPEN]
   flo2=LoadMesh("Floor.3ds")


Dadurch wird das neue Mesh zwar geladen und steht auch später in der Welt herum. Aber es übrschreibt die Variable, die Dir den Zugriff auf das vorherige ermöglichte. Jedes MESH sollte zunächst einen eigenen Namen erhalten.

Die billiste Lösung wäre
BlitzBasic: [AUSKLAPPEN]
Dim FLO[99]


Damit hast du 99 "Namensmöglichkeiten von FLO[1] bis FLO[99]

BlitzBasic: [AUSKLAPPEN]
   Flo[1] = LoadMesh("Floor.3ds")
Flo[Nr] = LoadMesh("Floor.3ds")
NR = Nr+1


So kannst Du dann auch jeden MESH einzeln ansprechen

BlitzBasic: [AUSKLAPPEN]
MoveEntity Flo(5), Rand(1,800), Rand(1,600)


oder wie in Deinem Data-Grid

BlitzBasic: [AUSKLAPPEN]
MoveEntity Flo(5), I*10, J*10
  • Zuletzt bearbeitet von Midimaster am Do, Jan 07, 2010 22:48, insgesamt 2-mal bearbeitet

Abenteurer036

BeitragDo, Jan 07, 2010 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie ändere ich das? Wenn ich allen Objekten in der For Schleife eine Position zuweise wird das ja ein verdammt langer Text. Kannm an nicht allen Entitys sagen das sich alle in bestimmten abständen zu einander anordnen sollen? Wenn ja wie?
New Project [4%]
Schinken Maker [100%]

Holzchopf

Meisterpacker

BeitragDo, Jan 07, 2010 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wär's mit
BlitzBasic: [AUSKLAPPEN]
PositionEntity flo, x, 0, -y


=)
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Midimaster

BeitragDo, Jan 07, 2010 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
@abenteurer036

ich hab grad noch was an meinen letzten post ergänzt... vielleicht kannst du noch mal hochschauen?


Und gleich noch eine grundsätzliche Änderung.


Der "Mesh" muss an sich nur 1x geladen werden. Du kannst von ihm dan soviele Kopien herstellen, wie du willst.

GrundMesh=LoadMesh("...")

Flo[1]=CopyEntity(GrundMesh)

Das bedeutet weniger Rechenarbeit und weniger Speicherbedarf für die Grafkkarte, weniger Ladezeit beim Starten

Abenteurer036

BeitragDo, Jan 07, 2010 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Data-Grid ist genau wonach ich gesucht habe denn ich will ja mit
Data ,0,0,0..... sagen wo was hinkommt und mir einem Grid den abstand bestimmen. Aber wenn ich es so wie du oben beschrieben mache:

Code: [AUSKLAPPEN]
MoveEntity Flo(5), I*10, J*10


dann liegen ja trotzdem alle aufeinander.
New Project [4%]
Schinken Maker [100%]

Midimaster

BeitragDo, Jan 07, 2010 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Also,.....

Wenn Du die Meshes nur beim Start einmal änderst und später im Spiel keine Änderungen mit ihnen mehr vorhast, dann kannst du schreiben:

BlitzBasic: [AUSKLAPPEN]
For x = 0 To 9
For y = 0 To 9
Read level(x,y)
If level(x,y)=0
flo=LoadMesh("Floor.3ds")
EntityColor flo,255,0,0
MoveEntity Flo, X*10, Y*10
ElseIf level(x,y)=1
.....


also ohne die Indexe bei Flo!

Wenn Du aber die einzeln Meshes später eventuell bewegen, färben oder löschen möchtest, dann ist diese Lösung besser:

BlitzBasic: [AUSKLAPPEN]
Dim Flo[10,10]

For x = 0 To 9
For y = 0 To 9
Read level(x,y)
If level(x,y)=0
Flo[x,y] =LoadMesh("Floor.3ds")
EntityColor Flo[x,y],255,0,0
MoveEntity Flo[x,y], X*10, Y*10
ElseIf level(x,y)=1
.....

Abenteurer036

BeitragDo, Jan 07, 2010 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Danke Midimaster jetzt funktioniert es Smile Und ich glaube ich habs verstanden. Das mit dem CopyEntity ist auch nicht schlecht.
New Project [4%]
Schinken Maker [100%]

Silver_Knee

BeitragDo, Jan 07, 2010 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
schnell berichtigen bevor da einer drauf reinfällt:

Zitat:
Aber du gibst allen neuen Objekten den immer gleichen Namen FLO2 [...]
Dadurch wird das neue Mesh zwar geladen, aber das vorherige dabei auch gleich wieder zerstört


das ist so nicht richtig. Das alte Mesh existiert weiter. Es könnte weiterhin bei Kollisionen, Picks etc auch wieder mit einer Variablen erfasst werden. Nur im Moment kann man, da man den alten Wert der Variable weggeworfen hat nichts damit anfangen, es also auch nicht drehen oder positionieren oder ohne ein ClearWorld auch nicht löschen.

Midimaster

BeitragDo, Jan 07, 2010 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
@silver_knee
danke, ich habs gleich anders formuliert.

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group