Page 1 sur 2

[4.60 beta] Hinge joints (charnières)

Publié : mer. 06/avr./2011 11:20
par kelebrindae
Bonjour à tous,

Voici une autre mini-démo de la physique dans PB 4.60. Cette fois, je voulais expérimenter les "Hinge joints", ce que l'on pourrait traduire par "charnières".

Mon souci est que, si j'attache un objet A à un objet B avec une charnière, je ne suis pas parvenu à restreindre le mouvement de l'objet A à un seul axe (comme sur une porte, par exemple: la porte ne bouge qu'autour de l'axe vertical). :?
Si quelqu'un sait comment faire, je suis preneur!

F1 à F3 => caméras
[Espace] => donner de l'élan au marteau
R => repositionner la balle (mais ça plante; le "FreeEntity" n'est apparemment pas signalé au moteur physique)

Code : Tout sélectionner

; Window size
#SCREENWIDTH = 800
#SCREENHEIGHT = 500

;- initialization
InitSprite()
InitEngine3D()
InitKeyboard()

;- Window
OpenWindow(0, 0, 0, #SCREENWIDTH, #SCREENHEIGHT, "Joint test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(0), 0, 0, #SCREENWIDTH,#SCREENHEIGHT, 0, 0, 0,#PB_Screen_SmartSynchronization)

;-Texture
Add3DArchive(".",#PB_3DArchive_FileSystem)
CreateImage(0,128, 128) 
StartDrawing(ImageOutput(0)) 
  Box(0, 0, 128, 128, $FFFFFF)
StopDrawing()
SaveImage(0,"temp.bmp")
FreeImage(0)
LoadTexture(0,"temp.bmp")
DeleteFile("temp.bmp")

;-Material
CreateMaterial(1,TextureID(0))
MaterialAmbientColor(1,#PB_Material_AmbientColors)
CreateMaterial(2,TextureID(0))
MaterialAmbientColor(2,$FFFF00)
CreateMaterial(3,TextureID(0))
MaterialAmbientColor(3,$0077FF)
CreateMaterial(4,TextureID(0))
MaterialAmbientColor(4,$FF00FF)
CreateMaterial(5,TextureID(0))
MaterialAmbientColor(5,$0055BB)

;- Entities
CreatePlane(4,2,2,20,20,1,1)
sol  = CreateEntity(#PB_Any, MeshID(4), MaterialID(1))
EntityPhysicBody(sol, #PB_Entity_StaticBody)    

; Ball and tee
CreateCube(1, 1.0)
socle = CreateEntity(#PB_Any,MeshID(1), MaterialID(1))
ScaleEntity(socle,0.5,1,0.5)
EntityLocate(socle,-1.6,0.5,0)
EntityPhysicBody(socle, #PB_Entity_BoxBody,0.1)

CreateSphere(3,0.5)
ball = CreateEntity(#PB_Any, MeshID(3), MaterialID(3))
EntityLocate(ball,-1.6,1.5,0)
EntityPhysicBody(ball, #PB_Entity_SphereBody,0.5)

; Targets
For i = 1 To 4
  temp = CreateEntity(#PB_Any, MeshID(1), MaterialID(4))
  EntityLocate(temp,-10,0.5,(i*1.1)-2.8)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i
For i = 1 To 3
  temp = CreateEntity(#PB_Any, MeshID(1), MaterialID(4))
  EntityLocate(temp,-10,1.5,(i*1.1)-2.3)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i
For i = 1 To 2
  temp = CreateEntity(#PB_Any, MeshID(1), MaterialID(4))
  EntityLocate(temp,-10,2.5,(i*1.1)-1.8)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i


; Mobile
Global hammerX.f = 2.3,hammerY.f = 7.7,hammerZ.f
;CreateCylinder(2,0.4,5) ; Cylinders don't seem to work very well with physics (?)
CreateSphere(2,0.4)
axe = CreateEntity(#PB_Any, MeshID(2), MaterialID(2))
;RotateEntity(axe,90,0,0)
EntityLocate(axe,hammerX,hammerY,hammerZ)
EntityPhysicBody(axe, #PB_Entity_StaticBody)

shaft = CreateEntity(#PB_Any, MeshID(1), MaterialID(5))
ScaleEntity(shaft,0.3,6,0.3)
EntityLocate(shaft,hammerX,hammerY - 3.5,hammerZ)
EntityPhysicBody(shaft, #PB_Entity_BoxBody,0.1)

hammerhead = CreateEntity(#PB_Any,MeshID(1), MaterialID(2))
ScaleEntity(hammerhead,2,1,1)
EntityLocate(hammerhead,hammerX,hammerY - 7,hammerZ)
EntityPhysicBody(hammerhead,#PB_Entity_BoxBody,50)

PointJoint(shaft,0,-3.1 ,0, hammerhead,0,0.5,0) ; Attach the hammerhead to the shaft
; Attach the hammer to axis. How do we restrain the hammer movement to one axis only ?
HingeJoint(axe,0,0,0, 0,0,1, shaft,0,3.5,0, 0,0,0)
HingeJoint(axe,0,0,0, 0,0,1, hammerhead,0,7,0, 0,0,0)


;- Camera
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,-2,8,18)
CameraLookAt(0,-2,5,0)
  
;-Light 
AmbientColor($666666) 
CreateLight(0,RGB(160,160,255),200,400,200) 
WorldShadows(#PB_Shadow_Additive)

;- Main loop
Repeat
  Delay(1)
  While WindowEvent() : Wend
  
  ;- F1, F2, F3 : Change view
  If ExamineKeyboard()
    If KeyboardReleased(#PB_Key_F1)
      CameraLocate(0,-18,2,0)
      CameraLookAt(0,0,3,0)
    EndIf
    If KeyboardReleased(#PB_Key_F2)
      CameraLocate(0,0,12,20)
      CameraLookAt(0,0,5,0)
    EndIf
    If KeyboardReleased(#PB_Key_F3)
      CameraLocate(0,1,5,10)
      CameraLookAt(0,-3,3,0)
    EndIf
    
    ;- [Space] : Throw hammer
    If KeyboardPushed(#PB_Key_Space)
      ApplyEntityImpulse(hammerhead,  10, 0, 0)
    EndIf
    ;- R : Reset ball's position (doesn't work)
    If KeyboardReleased(#PB_Key_R)
      FreeEntity(ball)
    EndIf
    
    ;- Return : Display FPS
    If KeyboardReleased(#PB_Key_Return)
      MessageRequester("Infos","FPS = " + Str(Engine3DFrameRate(#PB_Engine3D_Average)))
    EndIf

  EndIf
  
  ; Render
  RenderWorld()
  FlipBuffers()
  
  If Not IsEntity(ball)
      ball = CreateEntity(#PB_Any, MeshID(3), MaterialID(3))
      EntityLocate(ball,-1.6,1.5,0)
      EntityPhysicBody(ball, #PB_Entity_SphereBody)
  EndIf
 
Until KeyboardPushed(#PB_Key_Escape)

End

Re: [4.60 beta] Hinge joints (charnières)

Publié : mer. 06/avr./2011 11:46
par djes
Sympa l'exemple :)
Un truc curieux, quand je change de vue, je ne peux plus appuyer sur espace?!

Re: [4.60 beta] Hinge joints (charnières)

Publié : mer. 06/avr./2011 12:47
par Torp
Pareil pour moi, si tu changes de vue, la barre d'espace n'est plus fonctionnelle.

Re: [4.60 beta] Hinge joints (charnières)

Publié : mer. 06/avr./2011 13:43
par G-Rom
On à été abandonné en cour de route... bref , il manque des truc à se niveau , je vais voir si je peut "bricolé" une fonction avant ce weekend , en attendant tu peut toujours verrouiller l'axe mécaniquement :

Code : Tout sélectionner

; Window size
#SCREENWIDTH = 800
#SCREENHEIGHT = 500

;- initialization
InitSprite()
InitEngine3D()
InitKeyboard()

;- Window
OpenWindow(0, 0, 0, #SCREENWIDTH, #SCREENHEIGHT, "Joint test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(0), 0, 0, #SCREENWIDTH,#SCREENHEIGHT, 0, 0, 0,#PB_Screen_SmartSynchronization)

;-Texture
Add3DArchive(".",#PB_3DArchive_FileSystem)
CreateImage(0,128, 128)
StartDrawing(ImageOutput(0))
  Box(0, 0, 128, 128, $FFFFFF)
StopDrawing()
SaveImage(0,"temp.bmp")
FreeImage(0)
LoadTexture(0,"temp.bmp")
DeleteFile("temp.bmp")

;-Material
CreateMaterial(1,TextureID(0))
MaterialAmbientColor(1,#PB_Material_AmbientColors)
CreateMaterial(2,TextureID(0))
MaterialAmbientColor(2,$FFFF00)
CreateMaterial(3,TextureID(0))
MaterialAmbientColor(3,$0077FF)
CreateMaterial(4,TextureID(0))
MaterialAmbientColor(4,$FF00FF)
CreateMaterial(5,TextureID(0))
MaterialAmbientColor(5,$0055BB)

;- Entities
CreatePlane(4,2,2,20,20,1,1)
sol  = CreateEntity(#PB_Any, MeshID(4), MaterialID(1))
EntityPhysicBody(sol, #PB_Entity_StaticBody)   

; Ball and tee
CreateCube(1, 1.0)
socle = CreateEntity(#PB_Any,MeshID(1), MaterialID(1))
ScaleEntity(socle,0.5,1,0.5)
EntityLocate(socle,-1.6,0.5,0)
EntityPhysicBody(socle, #PB_Entity_BoxBody,0.1)

CreateSphere(3,0.5)
ball = CreateEntity(#PB_Any, MeshID(3), MaterialID(3))
EntityLocate(ball,-1.6,1.5,0)
EntityPhysicBody(ball, #PB_Entity_SphereBody,0.5)

; Physic constraint
CreateCylinder(10,1,0.1,12,1,0)
pConstraintA = CreateEntity(#PB_Any,MeshID(10),#PB_Material_None)
EntityLocate(pConstraintA,2.3,7.7,0.25)
RotateEntity(pConstraintA,90,0,0)
EntityPhysicBody(pConstraintA, #PB_Entity_StaticBody)  

pConstraintB = CreateEntity(#PB_Any,MeshID(10),#PB_Material_None)
EntityLocate(pConstraintB,2.3,7.7,-0.25)
RotateEntity(pConstraintB,90,0,0)
EntityPhysicBody(pConstraintB, #PB_Entity_StaticBody)  

; Targets
For i = 1 To 4
  temp = CreateEntity(#PB_Any, MeshID(1), MaterialID(4))
  EntityLocate(temp,-10,0.5,(i*1.1)-2.8)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i
For i = 1 To 3
  temp = CreateEntity(#PB_Any, MeshID(1), MaterialID(4))
  EntityLocate(temp,-10,1.5,(i*1.1)-2.3)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i
For i = 1 To 2
  temp = CreateEntity(#PB_Any, MeshID(1), MaterialID(4))
  EntityLocate(temp,-10,2.5,(i*1.1)-1.8)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i


; Mobile
Global hammerX.f = 2.3,hammerY.f = 7.7,hammerZ.f
;CreateCylinder(2,0.4,5) ; Cylinders don't seem to work very well with physics (?)
CreateSphere(2,0.4)
axe = CreateEntity(#PB_Any, MeshID(2), MaterialID(2))
;RotateEntity(axe,90,0,0)
EntityLocate(axe,hammerX,hammerY,hammerZ)
EntityPhysicBody(axe, #PB_Entity_StaticBody)

shaft = CreateEntity(#PB_Any, MeshID(1), MaterialID(5))
ScaleEntity(shaft,0.3,6,0.3)
EntityLocate(shaft,hammerX,hammerY - 3.5,hammerZ)
EntityPhysicBody(shaft, #PB_Entity_BoxBody,0.1)

hammerhead = CreateEntity(#PB_Any,MeshID(1), MaterialID(2))
ScaleEntity(hammerhead,2,1,1)
EntityLocate(hammerhead,hammerX,hammerY - 7,hammerZ)
EntityPhysicBody(hammerhead,#PB_Entity_BoxBody,50)

PointJoint(shaft,0,-3.1 ,0, hammerhead,0,0.5,0) ; Attach the hammerhead to the shaft
; Attach the hammer to axis. How do we restrain the hammer movement to one axis only ?
HingeJoint(axe,0,0,0, 0,0,1, shaft,0,3.5,0, 0,0,0)
HingeJoint(axe,0,0,0, 0,0,1, hammerhead,0,7,0, 0,0,0)

#PB_PointJoint_Tau = 1
#PB_PointJoint_Damping = 2
#PB_SliderJoint_LowerLimit = 3
#PB_SliderJoint_UpperLimit = 4
#PB_ConeTwistJoint_SwingSpan = 5
#PB_ConeTwistJoint_SwingSpan2 = 6
#PB_ConeTwistJoint_TwistSpan = 7
SetJointAttribute(shaft,#PB_PointJoint_Tau,1000)

;- Camera
CreateCamera(0, 0, 0, 100, 100)
;CameraLocate(0,-2,8,18)
CameraLocate(0,10,11,-5)
CameraLookAt(0,-2,5,0)
 
;-Light
AmbientColor($666666)
CreateLight(0,RGB(160,160,255),200,400,200)
WorldShadows(#PB_Shadow_Additive)

KeyboardMode(#PB_Keyboard_International)

;- Main loop
Repeat
  Delay(1)
  While WindowEvent() : Wend
 
  ;- F1, F2, F3 : Change view
  If ExamineKeyboard()
    If KeyboardReleased(#PB_Key_F1)
      CameraLocate(0,-18,2,0)
      CameraLookAt(0,0,3,0)
    EndIf
    If KeyboardReleased(#PB_Key_F2)
      CameraLocate(0,0,12,20)
      CameraLookAt(0,0,5,0)
    EndIf
    If KeyboardReleased(#PB_Key_F3)
      CameraLocate(0,1,5,10)
      CameraLookAt(0,-3,3,0)
    EndIf
   
    ;- [Space] : Throw hammer
    If KeyboardPushed(#PB_Key_Space)
      ApplyEntityImpulse(hammerhead,  10, 0, 0)
    EndIf
    ;- R : Reset ball's position (doesn't work)
    If KeyboardReleased(#PB_Key_R)
      ;       FreeEntity(ball)
    EndIf
   
    ;- Return : Display FPS
    If KeyboardReleased(#PB_Key_Return)
      MessageRequester("Infos","FPS = " + Str(Engine3DFrameRate(#PB_Engine3D_Average)))
    EndIf

  EndIf
 
  ; Render
  RenderWorld()
  FlipBuffers()
 
  If Not IsEntity(ball)
      ball = CreateEntity(#PB_Any, MeshID(3), MaterialID(3))
      EntityLocate(ball,-1.6,1.5,0)
      EntityPhysicBody(ball, #PB_Entity_SphereBody)
  EndIf

Until KeyboardPushed(#PB_Key_Escape)

End


Re: [4.60 beta] Hinge joints (charnières)

Publié : jeu. 07/avr./2011 8:40
par kelebrindae
Ah oui, c'est une bonne idée; je n'y avais pas pensé...

Hier soir, j'ai un peu expérimenté et je crois avoir trouvé quelque chose:
Les paramètres de HingeJoint sont les suivants:

Code : Tout sélectionner

HingeJoint(#Entity,PivotX,PivotY,PivotZ,axisX,axisY,axisZ, #Entity2,PivotX2,PivotY2,PivotZ2,axisX2,axisY2,axisZ2)
J'ai l'impression que les paramètres "axis" se comportent comme des contraintes.
Dans mon exemple, le marteau doit pouvoir bouger sur les axes X et Y pour se balancer, mais pas sur l'axe Z afin qu'il reste bien "droit".
Eh bien en mettant:

Code : Tout sélectionner

HingeJoint(axe,0,0,0, 0,0,1000000, hammerhead,0,7,0, 0,0,0)
c'est ce que j'obtiens. (mais vu mon niveau de compréhension, c'est peut-être un coincidence... :wink: ). Vous pouvez tester ce que ça donne dans le code ci-dessous.

Encore deux remarques:
- Pour les cas où la barre Espace ne fait plus rien: En fait, le problème se produit quand on attend quelques secondes avant d'appuyer => je me demande si les entités ne se mettent pas "au repos" au bout de quelques secondes d'immobilité (le moteur physique ne les gère plus pour gagner du temps). Une collision doit pouvoir les "réveiller", mais apparemment pas un "ApplyEntityImpulse". Est-ce un bug ? :?
- A chaque fois que j'ai essayé de faire un "EntityPhysicBody(#entity, #PB_Entity_BoxBody)" sur un cylindre créé à partir de "CreateCylinder", j'ai obtenu un comportement assez chaotique; je me demande s'il n'y a pas un souci de ce côté...

Code : Tout sélectionner

; Window size
#SCREENWIDTH = 800
#SCREENHEIGHT = 500

;- initialization
InitSprite()
InitEngine3D()
InitKeyboard()

;- Window
OpenWindow(0, 0, 0, #SCREENWIDTH, #SCREENHEIGHT, "Joint test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(0), 0, 0, #SCREENWIDTH,#SCREENHEIGHT, 0, 0, 0,#PB_Screen_SmartSynchronization)

;-Texture
Add3DArchive(".",#PB_3DArchive_FileSystem)
CreateImage(0,128, 128)
StartDrawing(ImageOutput(0))
  Box(0, 0, 128, 128, $FFFFFF)
StopDrawing()
SaveImage(0,"temp.bmp")
FreeImage(0)
LoadTexture(0,"temp.bmp")
DeleteFile("temp.bmp")

;-Material
CreateMaterial(1,TextureID(0))
MaterialAmbientColor(1,#PB_Material_AmbientColors)
CreateMaterial(2,TextureID(0))
MaterialAmbientColor(2,$FFFF00)
CreateMaterial(3,TextureID(0))
MaterialAmbientColor(3,$0077FF)
CreateMaterial(4,TextureID(0))
MaterialAmbientColor(4,$FF00FF)
CreateMaterial(5,TextureID(0))
MaterialAmbientColor(5,$0055BB)

;- Entities
CreatePlane(1,2,2,20,20,1,1)
sol  = CreateEntity(#PB_Any, MeshID(1), MaterialID(1))
EntityPhysicBody(sol, #PB_Entity_StaticBody)   

; Ball and tee
CreateCube(2, 1.0)
socle = CreateEntity(#PB_Any,MeshID(2), MaterialID(1))
ScaleEntity(socle,0.5,1,0.5)
EntityLocate(socle,2.6,0.5,0)
EntityPhysicBody(socle, #PB_Entity_BoxBody,0.1)

CreateSphere(3,0.5)
ball = CreateEntity(#PB_Any, MeshID(3), MaterialID(3))
EntityLocate(ball,2.6,1.5,0)
EntityPhysicBody(ball, #PB_Entity_SphereBody,1,4,1)

; Targets
For i = 1 To 4
  temp = CreateEntity(#PB_Any, MeshID(2), MaterialID(4))
  EntityLocate(temp,-10,0.5,(i*1.1)-2.8)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i
For i = 1 To 3
  temp = CreateEntity(#PB_Any, MeshID(2), MaterialID(4))
  EntityLocate(temp,-10,1.5,(i*1.1)-2.3)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i
For i = 1 To 2
  temp = CreateEntity(#PB_Any, MeshID(2), MaterialID(4))
  EntityLocate(temp,-10,2.5,(i*1.1)-1.8)
  EntityPhysicBody(temp, #PB_Entity_BoxBody, 0.25)
Next i


; Mobile
Global hammerX.f = 7,hammerY.f = 7.7,hammerZ.f
;CreateCylinder(4,0.4,5) ; Cylinders don't seem to work very well with physics (?)
CreateSphere(4,0.4)
axe = CreateEntity(#PB_Any, MeshID(4), MaterialID(2))
;RotateEntity(axe,90,0,0)
EntityLocate(axe,hammerX,hammerY,hammerZ)
EntityPhysicBody(axe, #PB_Entity_StaticBody)

shaft = CreateEntity(#PB_Any, MeshID(2), MaterialID(5))
ScaleEntity(shaft,0.3,6,0.3)
EntityLocate(shaft,hammerX,hammerY - 3.5,hammerZ)
EntityPhysicBody(shaft, #PB_Entity_BoxBody,0.1)

hammerhead = CreateEntity(#PB_Any,MeshID(2), MaterialID(2))
ScaleEntity(hammerhead,2,1,1)
EntityLocate(hammerhead,hammerX,hammerY - 7,hammerZ)
EntityPhysicBody(hammerhead,#PB_Entity_BoxBody,20)

PointJoint(shaft,0,-3.1 ,0, hammerhead,0,0.5,0) ; Attach the hammerhead to the shaft
; Attach the hammer to axis. How do we restrain the hammer movement to one axis only ?
HingeJoint(axe,0,0,0, 0,0,1000000, shaft,0,3.5,0, 0,0,0)
HingeJoint(axe,0,0,0, 0,0,1000000, hammerhead,0,7,0, 0,0,0)

;- Camera
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,-2,8,18)
CameraLookAt(0,-2,5,0)

;-Light
AmbientColor($666666)
CreateLight(0,RGB(160,160,255),200,400,200)
WorldShadows(#PB_Shadow_Additive)

KeyboardMode(#PB_Keyboard_International)

;- Main loop
Repeat
  Delay(1)
  While WindowEvent() : Wend

  ;- F1, F2, F3 : Change view
  If ExamineKeyboard()
    If KeyboardReleased(#PB_Key_F1)
      CameraLocate(0,-18,2,0)
      CameraLookAt(0,0,3,0)
    EndIf
    If KeyboardReleased(#PB_Key_F2)
      CameraLocate(0,0,12,20)
      CameraLookAt(0,0,5,0)
    EndIf
    If KeyboardReleased(#PB_Key_F3)
      CameraLocate(0,1,5,10)
      CameraLookAt(0,-3,3,0)
    EndIf
   
    ;- [Space] : Throw hammer
    If KeyboardPushed(#PB_Key_Space)
      ApplyEntityImpulse(hammerhead,  5, 0, 0)
    EndIf
    ;- R : Reset ball's position (doesn't work)
    If KeyboardReleased(#PB_Key_R)
      FreeEntity(ball)
    EndIf
   
    ;- Return : Display FPS
    If KeyboardReleased(#PB_Key_Return)
      MessageRequester("Infos","FPS = " + Str(Engine3DFrameRate(#PB_Engine3D_Average)))
    EndIf

  EndIf

  ; Render
  RenderWorld()
  FlipBuffers()

  If Not IsEntity(ball)
      ball = CreateEntity(#PB_Any, MeshID(3), MaterialID(3))
      EntityLocate(ball,-1.6,1.5,0)
      EntityPhysicBody(ball, #PB_Entity_SphereBody)
  EndIf

Until KeyboardPushed(#PB_Key_Escape)

End

Re: [4.60 beta] Hinge joints (charnières)

Publié : jeu. 07/avr./2011 9:24
par Cool Dji
Salut kelebrindae,

Yep, vraiment bien ton exemple.
Bizarre le sommeil de l'entity au bout de 2 secondes...

J'ai essayé de mettre des ApplyEntityImpulse à chaque itérations (juste avant le test barre d'espace) pour ne pas endormir l'entity mais ça marche pas.

J'avais déjà tenté un ApplyEntityImpulse(hammerhead, 0, 0, 0)

puis
ApplyEntityImpulse(hammerhead, 1, 0, 0)
ApplyEntityImpulse(hammerhead, -1, 0, 0)
puis

ApplyEntityImpulse(hammerhead, 0.1, 0, 0)

Dans le dernier exemple, on voit bien le marteau reculé tout seul mais il s'arrête d'un coup...

Re: [4.60 beta] Hinge joints (charnières)

Publié : jeu. 07/avr./2011 9:44
par kelebrindae
Peut-être que le mouvement est insuffisant.
Si tu ajoutes:

Code : Tout sélectionner

ApplyEntityImpulse(hammerhead,  20, 0, 0)
juste avant le "Repeat" de la boucle principale (en dehors de la boucle, donc), cela imprime un faible balancement au marteau, ce qui l'empêche de se bloquer.

Re: [4.60 beta] Hinge joints (charnières)

Publié : jeu. 07/avr./2011 9:54
par Cool Dji
Oki,

Le seul moyen que j'ai trouvé pour réveiller l'Entity, c'est la killer (freeEntity, puis de la recréer dans la foulée).

Re: [4.60 beta] Hinge joints (charnières)

Publié : jeu. 07/avr./2011 10:33
par Fred
Y'a effectivement une histoire de mise en sommeil dans Bullet, on va regarder.

Re: [4.60 beta] Hinge joints (charnières)

Publié : jeu. 07/avr./2011 12:24
par G-Rom
je me suis fait braqué les jantes de ma voiture de travail ce matin :/ je vais avoir du temps demain et ce weekend du coup pour voir tout ca...

Re: [4.60 beta] Hinge joints (charnières)

Publié : jeu. 07/avr./2011 12:57
par Cool Dji
C'est le genre de truc qui prend bien la tête...se faire piquer les roues de la bagnole !!

Re: [4.60 beta] Hinge joints (charnières)

Publié : lun. 17/oct./2011 20:27
par Atlante
J'ai Impossible de démarrer le programme car il manque d3dx9_42.dll pourtant je l'ai ajouté dans le system32 et reboot le pc.
Je suis sous windows 7. Si quelqu'un a une idée ;)

Re: [4.60 beta] Hinge joints (charnières)

Publié : lun. 17/oct./2011 23:30
par Fred
Installe les derniers directx

Re: [4.60 beta] Hinge joints (charnières)

Publié : mar. 18/oct./2011 17:17
par Atlante
Fred a écrit :Installe les derniers directx
Je suis directX 11 sous windows 7 64bit.
C'est bien la dernière version pourtant.

Re: [4.60 beta] Hinge joints (charnières)

Publié : mar. 18/oct./2011 17:35
par Fred
Telecharge le dernier direct 9, c'est independant de directx 11