collisions probleme

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

AMY

Betreff: collisions probleme

BeitragSo, Sep 17, 2006 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe mal ne Frage wie das so ist mit den collisions. Ich habe schon nen bischen rumprobiert und hat auch alles gut geklappt.
Aber dann wollt ich ne wand erstellen mit ner tür, aber da ich nicht 3 oder mehr teile machen wollte dachte ich mir besteht die Wand aus einem Teil und ich setzte eine Masked Texturedrauf und schon merkt es keiner. Shön und gut sieht auch sehr gut aus, aber wenn ich jetzt die Kollisions Routine einbaue, dann Kann ich immer noch durch die Wand durchgehen, bis auf die Transparente Stelle, wo man es ja soll. Hat jemand eine ahnung wie man das hinbekommt oder woran das liegt?
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

Blitzcoder

Newsposter

BeitragSo, Sep 17, 2006 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe jetzt zwar nicht ganz, aber wenn man durch die Wan gehen kann, nur nicht da, wo man es soll, dann würde ich einfach mal denken, dass du die Entitys vertauscht hast. Poste am besten mal den Code.

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

AMY

BeitragSo, Sep 17, 2006 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
So hier mal der Code. Hoffe ich habe nichts vergessen.

Code: [AUSKLAPPEN]
Graphics3D 1024,768,32,2

Global camera=CreateCamera()
light=CreateLight(2)
camlight=CreateLight(2,camera)
EntityType camera,2

HidePointer

WireFrame 0

CreateGameCube(0,0,0)

Repeat
   EntityBox camera,EntityX(camera),EntityY(camera),EntityZ(camera),1,1,1
   If MoveMouseCount=30 Then MoveMouse 512,384:MoveMouseCount=0 Else MoveMouseCount=MoveMouseCount+1
   Movement

   Collisions 2,1,3,1
   countcollisions(camera)
   UpdateWorld
   RenderWorld
   Flip
If KeyHit(1) Then Exit
Forever

Function Movement()
  mspeedx=MouseXSpeed()
  mspeedy=MouseYSpeed()
  msensivityX#=mspeedx/2
  msensivityY#=mspeedy/2
If mspeedy<>0 Then TurnEntity camera,msensivityy,0 ,0
If mspeedx<>0 Then TurnEntity camera,0,-msensivityX,0
  If KeyDown(54) Then movespeed#=0.3 Else movespeed=1
  If KeyDown(205)=True Then MoveEntity camera, movespeed, 0, 0
  If KeyDown(203)=True Then MoveEntity camera,-movespeed, 0, 0
  If KeyDown(201)=True Then MoveEntity camera, 0, movespeed, 0
  If KeyDown(209)=True Then MoveEntity camera, 0,-movespeed, 0
  If KeyDown(208)=True Then MoveEntity camera, 0, 0,-movespeed
  If KeyDown(200)=True Then MoveEntity camera, 0, 0, movespeed
End Function

Function CreateGameCube(Posx,Posy,Posz)
Texture=LoadTexture("TexturS.bmp",4)
W1=CreateCube()
EntityTexture W1,texture
ScaleEntity W1,20,20,1
PositionEntity W1,0+PosX,0+PosY,0+PosZ
EntityType W1,1

W2=CreateCube()
EntityTexture W2,texture
ScaleEntity W2,1,20,20
PositionEntity W2,21+PosX,0+PosY,21+PosZ
EntityType W2,1
End Function
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!
 

Dreamora

BeitragSo, Sep 17, 2006 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Textur hat nichts mit der Kollision zu tun. Selbst wenn weit und breit keine Textur wär und das Objekt deswegen nicht zu sehen, würdest du immer noch kollidieren.

wenn du ein Loch willst, wo du durch kannst, muss das Loch in der Geometrie existieren oder man kann durch die ganze Wand durch gehen.

Übrigens fehlt der Befehl EntityBox bei denen kollisionswürfel, sonst ist der kollisionsbereich nämlich nicht so gross wie deine skalierten Objekte. (kollision interessiert sich nämlich nicht dafür ob du skalierst oder rotierst, hat beides keinen Einfluss auf die Box).
Bzw. im Falle das man den Polygonkollisionsmodus nutzt muss man ScaleMesh machen, damit die effektive Geometrie skaliert wird. Ansonsten stimmt die Kollisionsroutine nämlich auch nicht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

AMY

BeitragSa, Sep 23, 2006 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie gesgat ich habe nicht so viel erfahrung mit collisions gamacht. Deswegen habe ich auf eine einfache antwort gehofft.
Auch nachdem ich EntityBox gesetzt habe, hat es nicht funktioniert.
Wenn ich das Loch in die Geometrie einbaue vervielfacht sich aber auch leider die anzahl der Objekte welches wiederum auch zum absinken der Geschwindigkeit beiträgt, und das nicht zu knapp.
Kann man sich eigentlich irgendwie die box anzeigen lassen?
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!
 

Dreamora

BeitragSa, Sep 23, 2006 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Die anzahl objekte vervielfacht sich deswegen noch lange nicht. du kannst ja die ganzen Teile wieder zu einem Objekt zusammenfügen.
Dann hast du zwar ein paar Polygone mehr aber die Menge ist so klein, dass das eigentlich kein Problem darstellt.

Und EntityBox nützt dir nichts, da die Box für die ganze Entity gilt. Damit kannst du also kein Loch in eine Wand machen. (ausser du machst XY Pivots die child der Wandentity sind in die Wand rein und gibst denen EntityBox kollision ... aber nunja ... ob das dann soviel schneller ist ... ^^
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

AMY

BeitragSa, Sep 23, 2006 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie fügt man die teile wieder zusammen?
ich habe, glauibe ich mal, eine funktion namens addmesh gesehen, aber dadurch dass man erst mit addtriangle und wetern arbeiten muss un genau jeden punkt im koordinaten system kennen muss aheb ich es für doch nicht einfach befunden und erst mal nach einem einfacherem weg gesucht. Gibt es den oder ist das der einzige weg zum ziel?
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!
 

Dreamora

BeitragSa, Sep 23, 2006 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutz einfach einen 3D Modeller Smile
Alternativ, ja nutzt AddMesh, da musst du nix mit AddVertex etc machen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group