Page 1 sur 1

Bug ou pas bug : node et collision entity

Publié : dim. 17/févr./2013 22:42
par Cool Dji
Hello,

Je ne suis pas certain que ce soit un bug de PureBasic donc, avant de poster sur le forum anglais (que j'ai consulté sans rien trouver) j'aimerais votre avis.

Je créé une plaque avec 2 barres latérales que je colle dans un node.
Je balance des balles par dessus => les collisions fonctionnent bien.

Mais lorsque le node rotate (avec la touche espace), les balles semblent conserver la position initiale de l'entity pour les collisions et ne prennent pas en compte le nouvelle angle de la plaque...
Si on fait uniquement un rotateentity de la plaque seule, les balles suivaient bien le nouvel angle et tombaient en roulant...

Vous voyez de quoi ça peut venir ?

Merci

Code : Tout sélectionner

InitEngine3D()
InitKeyboard()
InitMouse()
InitSprite()

#CameraSpeed = 1

Define.f KeyX, KeyY


 ; Ouvre un écran
OpenScreen(1024,768,32,"X")
AntialiasingMode(#PB_AntialiasingMode_x6)

CreateTexture(0,512,512)
StartDrawing(TextureOutput(0))
Box(0,0,512,512,RGB(255,0,255))
Circle(256,256,80,RGB(0,255,0))
StopDrawing()
CreateMaterial(0,TextureID(0))

CreatePlane(0,100,100,100,100,10,10)
CreateEntity(1,MeshID(0),#PB_Material_None ,50,0,50)
EntityPhysicBody(1,#PB_Entity_StaticBody)

CreateCube(1,100)
CreateEntity(2,MeshID(1),#PB_Material_None ,50,5,0)
ScaleEntity(2,1,0.1,0.1)
EntityPhysicBody(2,#PB_Entity_StaticBody)

CreateEntity(3,MeshID(1),#PB_Material_None ,50,5,100)
ScaleEntity(3,1,0.1,0.1)
EntityPhysicBody(3,#PB_Entity_StaticBody)

CreateNode(0)
AttachNodeObject(0,EntityID(1))
AttachNodeObject(0,EntityID(2))
AttachNodeObject(0,EntityID(3))

CreateSphere(2,2)
For j=1 To 100
  CreateEntity(j+100,MeshID(2),MaterialID(0),Random(100),50+Random(100),Random(100))
  EntityPhysicBody(j+100,#PB_Entity_SphereBody,1,1,1)
Next

CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 200, 50, 200,#PB_Absolute)
CameraLookAt(0, 10, 10, 10)
EnableWorldPhysics(1)



Repeat  

      If ExamineMouse()
        MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
        MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
      EndIf
      
      If ExamineKeyboard()
        
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed
        Else
          KeyX = 0
        EndIf
        
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed
        Else
          KeyY = 0
        EndIf    
        
        If KeyboardPushed(#PB_Key_Space)
          
          RotateNode(0,0.1,0,0,#PB_Relative)
       EndIf
      
      EndIf
  
      RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
      MoveCamera  (0, KeyX, 0, KeyY)

RenderWorld()
FlipBuffers()
   
Until KeyboardPushed(#PB_Key_Escape)
End
 

Re: Bug ou pas bug : node et collision entity

Publié : lun. 18/févr./2013 11:05
par G-Rom
c'est pas un bug d'ogre3d ou de pb, mais un manque du coté de l'implémentation a priori.
j'ai lâché prise pour le moment avec le moteur , je ne saurais dire se qu'il faut faire , même si j'ai une petite idée
comtois est la personne à contacté ;)

edit:

en "rotatant" directement la plaque ca marche , à voir donc pour les rotation de node à updaté la partie physique ?

Re: Bug ou pas bug : node et collision entity

Publié : mar. 19/févr./2013 10:08
par Cool Dji
Hello G-Rom,

Ok je poste sur le forum anglais.
A +

Re: Bug ou pas bug : node et collision entity

Publié : mar. 19/févr./2013 10:34
par G-Rom
Te casse pas la tête. Le bug est pris en compte