Dark phy

corwin Message lu Posté le 27 Juil 2009 à 12:39 Bulle
Avatar de corwin
Membre Confirmé

Messages : 459
GCPoints : 63647
Enfin :P
Alors voila j'ai un petit problème. avec dark physics j'ai créer un objet que j'ai mi presque a la position de la camera et je l'est locker : "lock object". Cette objet marche très bien si il est en statique mais se décale complètement et se tourne dans tout les sens si il est en dynamique. le problème ses que si je met en statique l'objet marche bien mais les collisions ne s'effectu pas avec les objet dynamique. Et si je met en dynamique l'objet est complètement décaler mais les collisions marche très bien. une sollution pour que tout marche comme il faut ? :)
math89 Message lu Posté le 29 Juil 2009 à 16:38 Bulle
Avatar de math89
Nouveau Membre

Messages : 7
GCPoints : 2293
Lock object est tout simplement une mauvaise idée. Ça veut dire que l'objet est repositionné a chaque frame, et le repositionnement, dans le monde de la physique, ça s'appelle de la téléportation, et ça n'existe pas. Il faudrait peut-être quelques précisions, qu'est ce que tu essaies de faire ?
corwin Message lu Posté le 29 Juil 2009 à 17:34 Bulle
Avatar de corwin
Membre Confirmé

Messages : 459
GCPoints : 63647
voila un exemple de se que je veut faire. Se code a été fait rapidement donc très mal fait :absurd: si tu a une solution :wink: J'ai fait un peut n'importe quoi pour tester voir si quelque chose marchai mais niet. Aufaite le truck sa serai de passer de static a dynamic mais comment faire ? :grin: Ou de fair quel que chose de stable :
Code :
set display mode 1280,1024,32
Sync On
sync rate 100
hide mouse
color backdrop 0
phy start

phy make material 1,"player"
phy set material restitution 1, 0.0
phy set material dynamic friction 1, 0.1
phy set material static friction 1, 0.1
phy build material 1
Make Object Cube 1 , 1

make matrix 1,100,100,10,10
position matrix 1,0,-10,0

make object box 2,0.5,0.5,10
phy make rigid body dynamic box 2,1
set object cull 2,0
position object 2,object position x(1)+1,object position y(1)-1.1,object position z(1)+1
phy set rigid body mass 2,100
lock object on 2



make object box 3,10,2,10
position object 3,0,-2,0
phy make rigid body static box 3, 1

make object cube 500,0.5
position object 500,2,10,2
phy make rigid body dynamic box 500
phy set rigid body mass 500,3

make object sphere 301,3
phy make rigid body dynamic sphere 301,1
position object 301,0,20,0
phy set rigid body mass 301,100
glue object to limb 2,301,0

x#=0
y#=0
z#=0
bounce = 6
Angle  = 0
Angle2 = 0
Angle3 = 0
add = 5


Do
phy set rigid body linear damping 2,8
phy set rigid body position 2,object position x(1)+1,object position y(1)-1.1,object position z(1)+1

phy set rigid body linear damping 301,8
   position object 301,object position x(1),object position y(1),object position z(1)

rx#=object position x(1)
   ry#=object position y(1)
   rz#=object position z(1)


   phy set rigid body position 301, rx#, ry#, rz#



text 0,0,"x : " + str$(object angle x(2)) + " / y : " + str$(object angle y(2)) + " / z : " + str$(object angle z(2))
text 0,10,"polygons: "+str$(statistic(1))
text 0,20,"fps: "+str$(screen fps())

    position object 1,object position x(1),y#,object position z(1)
    Inc Angle , 5
    Inc Angle2, rnd(add)
    Inc Angle3, rnd(add)

    if mouseclick()=1
      anglex#=object angle x(2)+(mousemovey()/2.5)
      angley#=object angle y(2)+(mousemovex()/2.5)
      if anglex#<=-33.6 then anglex#=-33.6
      if anglex#>=20 then anglex#=20
      if angley#>=26 then angley#=26
      if angley#<=-52 then angley#=-52

      rotate object 2,anglex#,angley#,0

    else
      rotate object 1,object angle x(1)+(mousemovey()/2.5),object angle y(1)+(mousemovex()/2.5),0
      rotate camera 0,object angle x(1),object angle y(1)+sin(Angle2),0-sin(Angle3)
    endif

    if keystate(17)=1
        move object 1,0.2
        bounce = 1
        add = 5
    else
        add = 0
        bounce = 6
    endif

    if keystate(31)=1 then move object 1,-0.2
    if keystate(32)=1 then move object right 1,0.2
    if keystate(30)=1 then move object left 1,0.2

    y# = 0+sin(angle)/bounce

    position camera 0,object position x(1),object position y(1),object position z(1)


phy update
   Sync
Loop
Dernière édition le 29 Juil 2009 à 17:36
math89 Message lu Posté le 01 Août 2009 à 11:21 Bulle
Avatar de math89
Nouveau Membre

Messages : 7
GCPoints : 2293
Si tu veux que le joueur réagisse a la physique, tu dois laisser tomber tous les move object, rotate object et position object. Tout ce que tu as le droit d'utiliser, c'est les commandes de Dark Physics pour ajouter des forces. Et ensuite, tu positionnes la camera sur ton objet physique.
Je peux pas t'aider plus, vu que j'ai pas DP.
corwin Message lu Posté le 01 Août 2009 à 20:51 Bulle
Avatar de corwin
Membre Confirmé

Messages : 459
GCPoints : 63647
Ok tu a tout a fait raison sait se que je vais vaire :grin:
Répondre
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.0258 secondes