forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   physx (http://forum.boolean.name/showthread.php?t=15454)

Spy4433 08.09.2011 16:47

physx
 
Всем добрый день

возник вопрос по physx, а точнее реализация прыжка
что бы высота прыжка была всегда одинакова
хотелось бы увидеть пример или хотя бы идеи по этому поводу

буду благодарен

pepel 08.09.2011 19:34

Ответ: physx
 
а что сложного то? прикладываешь одну и ту же силу и будет одинаковый прыжок


PHP код:

gr_width=800gr_height=600:mode=2
;gr_width=1280gr_height=1024:mode=2


Graphics3D gr_width
,gr_height,32,Mode
Global cam=CreateCamera()
PositionEntity cam,0,0,-30

    pxCreateWorld
(1,"1")
    
pxSetGravity(0, -400)

px_body=pxBodyCreateSphere(1,1)
mesh=CreateSphere() 
pxBodySetPosition px_body,0,10,

Repeat

If KeyHit(57pxBodyAddForce px_body,0,30,0,1

If KeyDown(203pxBodyAddForce px_body,-1,0,0,1
If KeyDown(205pxBodyAddForce px_body,1,0,0,1

pxBodySetEntity
(meshpx_body)
pxRenderPhysic(0,1)    
RenderWorld
;Text 0,0,""
Flip:If KeyDown(1End  
Forever 


Spy4433 08.09.2011 22:24

Ответ: physx
 
так ну вот что бы персонаж не прыгал в воздухе
я сделал так

player_jump - физ тело которое прикреплено к player_body


cn=pxGetContacts(player_jump)
If pxContactGetForceNY(player_jump,cn)>0 Then coll=1

If KeyHit(57) and coll=1 Then
coll=0
pxBodyAddForce(player_body,0,260,0,0)
EndIf

pepel 09.09.2011 14:19

Ответ: physx
 
проще будет так

If KeyHit(57) And pxGetContacts(px_body)>0 pxBodyAddForce px_body,0,30,0,1

хотя переменная coll может пригодится..


Часовой пояс GMT +4, время: 12:42.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot