forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Помогите не могу исправить((( (http://forum.boolean.name/showthread.php?t=11997)

JohnAustin 22.02.2010 18:42

Помогите не могу исправить(((
 
Уважаемые программисты, помогите кто чем сможет:SOS: . Никак не могу понять почему куб продолжает вращаться когда останавливается, после того как походишь(((

Вот код:
Код:

;=========================================BEGIN===========================
AppTitle "BCM"

Global phplayer%
Global naklon_pitch#
Global naklon_roll#
Global campitch
Global mxspd#

Graphics3D 800,600,32,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()
HidePointer

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



light=CreateLight()
AmbientLight 100,100,100

;=========================================GOROD============================
plane=CreatePlane()
tex=LoadTexture("c:\bcm\models\88sad\O23SCV96.jpg")
ScaleTexture tex,5,5
EntityTexture plane,tex
;=========================================END GOROD========================

;=========================================PLAYER===========================
phplayer=pxBodyCreateCapsule(1.2,0.5,80)

Global player=CreateCube()
;==============PIVOT==================
Global piv=CreatePivot(player)
;==============CAMERA=================
Global cam=CreateCamera(piv)
CameraRange cam,1,3000
PositionEntity cam,0,5,-10
;=========================================END PLAYER=======================

;=========================================MAIN LOOP========================
While Not KeyDown(1)=1

pxBodySetEntity player, phplayer

playercontorol

        UpdateWorld
        RenderWorld
                       
pxRenderPhysic(30,0)
               
Flip
Wend
End
;=========================================END===============================



;=========================================FUNCTIONS=========================
Function playercontorol()

;=======================MOUSE========================

mxspd#=MouseXSpeed()*0.35
myspd#=MouseYSpeed()*0.35
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
campitch=campitch+myspd
If campitch<-30 Then campitch=-30
If campitch>20 Then campitch=20

pxBodySetRotation phplayer,0,pxBodyGetRotationYaw(phplayer)-mxspd#,0

If Not KeyDown(17) Then
RotateEntity piv,campitch,EntityYaw(piv)-mxspd#,0
End If
 
     
;=======================END MOUSE====================

force#=1000
vz#=1
vx#=1

                If KeyDown(17)
                        pxBodyAddLocalForce(phplayer,0,0,(vz#-pxBodyGetLocalLinearSpeedZ(phplayer))*force#,0)                       
        Else If KeyDown(31)
                        pxBodyAddLocalForce(phplayer,0,0,-(vz#+pxBodyGetLocalLinearSpeedZ(phplayer))*force#,0)
                Else
                        pxBodyAddLocalForce(phplayer,0,0,-pxBodyGetLocalLinearSpeedZ(phplayer)*force#,0)
                End If
       
                If KeyDown(30)
                        pxBodyAddLocalForce(phplayer,-(vx#+pxBodyGetLocalLinearSpeedX(phplayer))*force#,0,0,0)
                Else If KeyDown(32)
                        pxBodyAddLocalForce(phplayer,(vx#-pxBodyGetLocalLinearSpeedX(phplayer))*force#,0,0,0)
                Else
                        pxBodyAddLocalForce(phplayer,-pxBodyGetLocalLinearSpeedX(phplayer)*force#,0,0,0)
                End If
                If KeyHit(57)
                        pxBodyAddLocalForce(phplayer,0,(vz#-pxBodyGetLocalLinearSpeedZ(phplayer))*force#,0,0)
                End If
               
                        naklon_pitch=pxBodyGetRotationPitch(phplayer)
                naklon_roll=pxBodyGetRotationRoll(phplayer)
                If naklon_pitch>0 Then
                        pxBodySetRotation phplayer,-naklon_pitch,-mxspd#,0
                        pxBodySetRotation phplayer,0,-mxspd#,0
                Else If naklon_pitch<0 Then
                        pxBodySetRotation phplayer,Abs(naklon_pitch),-mxspd#,0
                        pxBodySetRotation phplayer,0,-mxspd#,0
                End If
                               
                If naklon_roll>0 Then
                        pxBodySetRotation phplayer,0,-mxspd#,-naklon_roll
                        pxBodySetRotation phplayer,0,-mxspd#,0
                Else If naklon_roll<0 Then
                        pxBodySetRotation phplayer,0,-mxspd#,Abs(naklon_roll)
                        pxBodySetRotation phplayer,0,-mxspd#,0
                End If
               
End Function

PS: Управляется куб: w,a,s,d + мышь


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

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