brauche Hilfe mit entitybox in b3d

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

monkfurts

Betreff: brauche Hilfe mit entitybox in b3d

BeitragDi, Nov 15, 2011 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habe eine Kamera die nach unten geht und trotz
Code: [AUSKLAPPEN]
entitybox cam,entityx(cam),entityy(cam),entityz(cam),5,5,5

oder
Code: [AUSKLAPPEN]
entitybox cam,entityx(cam),entityy(cam),entityz(cam),5,-5,5

liegt die cam auf das Terrain auf
also entweder ich hab das Prinzip von entitybox nicht verstanden obwohl ich schon oft nachgesehen hab
oder ich hab einen Fehler in den code auf jedenfalls komm ich nicht weiter
vielleicht kann mir ja jemand helfen
danke im voraus
win 7 ultimate 64-bit | core i7 2600k 4x3,4 ghz | nvidia gtx 560-ti oc | 6gb ram

Xeres

Moderator

BeitragDi, Nov 15, 2011 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit entitybox setzt du die Kollisionsbox - hast du EntityType, Collisions oder UpdateWorld vergessen?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

monkfurts

BeitragDi, Nov 15, 2011 23:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ja ich hab alles hir ist der
Code: [AUSKLAPPEN]
Graphics3D 0,0,32,1
SetBuffer = BackBuffer
cam = CreateCamera() 
MoveEntity cam,0,8,-25
light = CreateLight()
PositionEntity light,500,500,500
ter = LoadTerrain("data\cin\ter.jpg")
MoveEntity ter,0,-5,0

gun = LoadMesh("data\cin\guns.3ds")
boden = LoadTexture("data\tex\ground.jpg")
ScaleTexture boden,3,3
EntityTexture ter,boden

EntityParent gun,cam
EntityBox cam,EntityX(cam),EntityY(cam),EntityZ(cam),10,-10,5
EntityType cam,2
EntityType ter,1
Collisions 2,1,2,3
MoveEntity cam,50,0,50   
While Not KeyHit(1)
UpdateWorld
RenderWorld
Flip
If KeyDown(17) Then MoveEntity cam,0,0,0.1
If KeyDown(31) Then MoveEntity cam,0,0,-0.1
If KeyDown(32) Then TurnEntity cam,0,-1,0
If KeyDown(30) Then TurnEntity cam,0,1,0
If KeyDown(18) Then TurnEntity cam,1,0,0
MoveEntity cam,0,-0.2,0
Wend

verzeiht die Unordentlichkeit Smile
win 7 ultimate 64-bit | core i7 2600k 4x3,4 ghz | nvidia gtx 560-ti oc | 6gb ram

monkfurts

BeitragDi, Nov 15, 2011 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
wie ich sehe ist das hier im falschen Forum
ich denke im b3d Forum wärs besser
win 7 ultimate 64-bit | core i7 2600k 4x3,4 ghz | nvidia gtx 560-ti oc | 6gb ram

NightPhoenix

BeitragDi, Nov 15, 2011 23:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Nene, da du hier im Beginner- (Anfänger-) Bereich bist ist alles in Ordnung. Smile

Hier liegt der Fehler: Code: [AUSKLAPPEN]
EntityBox cam,EntityX(cam),EntityY(cam),EntityZ(cam)

Du hast die Kollisionsbox-Position falsch gesetzt.
Die Positionsparameter für EntityBox sind relativ zum Objekt, d.h. also "abhängig" von dessen Position. Du addierst also falscher weise auf die Position der Kamera nochmals deren Position.

Kurze Erklärung:
Angenommen deine Kamera ist bei den Koordinaten (0,10,0) und du schreibst das so wie oben würde deine Kollisionsbox in der gesamten 3D-Welt auf (0,20,0) liegen. Warum? Weil ausgehend von der "cam" bei (0,10,0) die Kollisionsbox nochmals um 0,10,0 also auf (0,10+10,0) = (0,20,0) bewegt wird.
Was dazu führt, dass deine Kollisionsbox völlig neben der Kamera steht.


Versuch's mal mit
Code: [AUSKLAPPEN]
EntityBox cam, -1, -1, -1, 2, 2, 2


*edit* Die Box um die Hälfte ihrer Breite in negative Richtung bewegen. So sitzt die Kamera direkt in der Mitte der Kollisionsbox.

monkfurts

BeitragMi, Nov 16, 2011 0:07
Antworten mit Zitat
Benutzer-Profile anzeigen
das funktioniert leider nicht nach wie vor geht die cam direkt auf den Boden auf
was wiederum dazu führt das die gun unterm terrain liegt
bewegt sich eigentlich die box automatisch mit oder bleibt die stehen
win 7 ultimate 64-bit | core i7 2600k 4x3,4 ghz | nvidia gtx 560-ti oc | 6gb ram

Dottakopf

BeitragMi, Nov 16, 2011 8:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo !

bei solchen problemen ist es immer hilfreich sich einen cube zu erstellen, und diesen dort anzeigen zu lassen wo deine kollisionsbox sein sollte.(in deinem Fall blöd weil es an der camera hängt...)

Alternativ kannst du zwischen renderworld und updateworld Textausgaben machen lassen.
Lass dir die x y z Kordinaten der Kamera und des Test cubes ausgeben. Vergleiche die werte...

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

monkfurts

BeitragMi, Nov 16, 2011 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
naja ich habs jetz geschafft aber nicht mit entitybox
ich hab nen würfel mit cinema4d gemacht und der ist unter der cam
und alles richtet sich nach den cube
nicht ser elegant aber es hilft Very Happy
win 7 ultimate 64-bit | core i7 2600k 4x3,4 ghz | nvidia gtx 560-ti oc | 6gb ram

Dottakopf

BeitragMi, Nov 16, 2011 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe für meine Projekte auch einen positionierungs cube verwedet. An welchen alles angeheftet wird.
Aber modeliere dafür doch kein Mesh sondern benutze dafür doch ein Primitivs. Sprich Curbe,Sphere und co...
und setzte diese auf visible=0.

hat den vorteil das dein objekt kein Speicher im "Spiele Ordner" braucht...und auch nicht beim spielestart in den speicher geladen wird.
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

bjh

BeitragMi, Nov 16, 2011 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
oder benutz einen pivot, wenn man den würfel nicht sehen muss

Dottakopf

BeitragMi, Nov 16, 2011 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
bitte benutzt pivots nur um eure Parent und Child sachen zu koordinieren.
Für Kollisionsabfragen zb einer kollsionsbox sind sie nicht unbedningt geeignet...

Gruß
Doattakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

NightPhoenix

BeitragMi, Nov 16, 2011 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Was soll denn bei Pivots gegen eine Kollisionsbox oder Kollisionradius sprechen?
Zitat:
sind sie nicht unbedningt geeignet...
Erklär das mal.

Dottakopf

BeitragMi, Nov 16, 2011 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
weil mir nicht bekannt wäre wie ich die größe eines pivots festlegen kann.
Sprich die größe der kollisionsbox alias "Kollison Pivot".

Alle Wege führen nach Rom.. Ob nun EntityBox,ein Pivot, ein Primitv, oder ein gemodeltes Objekt dafür hergenommen wird ist egal, solage das ergebniss stimmt.

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Propellator

BeitragMi, Nov 16, 2011 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Grösse eines Entitys hat nichts mit der Kollisionsbox via EntityBox zu tun.
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

NightPhoenix

BeitragMi, Nov 16, 2011 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Kurz gesagt:

Man kann Pivots sehr gut für Kollisionen nutzen. Wink

monkfurts

BeitragDo, Nov 17, 2011 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke
ich weis natürlich das ich mit b3d auch würfel machen kann
allerdings hab ich daszu den zeitpunkt nicht drann gedacht Laughing
win 7 ultimate 64-bit | core i7 2600k 4x3,4 ghz | nvidia gtx 560-ti oc | 6gb ram

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group