CCharacterController::CCharacterController(CCharacter* pEntity, btPairCachingGhostObject* ghostObject,btConvexShape* convexShape,btScalar stepHeight) { m_hEntity = pEntity; m_flAddedMargin = 0.02f; m_vecMoveVelocity.setValue(0,0,0); m_pGhostObject = ghostObject; m_flStepHeight = stepHeight; m_pConvexShape = convexShape; m_vecGravity = btVector3(0, 0, -9.8f); m_vecUpVector = btVector3(0, 0, 1); m_vecLinearFactor = btVector3(1, 1, 1); m_flMaxSpeed = 55.0; // Terminal velocity of a sky diver in m/s. m_flJumpSpeed = 6.0; m_bColliding = true; SetMaxSlope(btRadians(45.0)); }
tPlayerController::tPlayerController(SceneNode * node, tShape * player) { mNode = node; mShape = player; mGravity = tWorld::Instance()->GetDefaultGravity(); SetMaxSlope(60.0f); mForwordVelocity = 0; mSideVelocity = 0; mJumpVelocity = -mGravity * 0.5f; mInternalJumpVel = 0; mPlayerHeight = node->GetWorldAabb().GetSize().y; mJumpHighLimit = 0.9f; mJumpLowLimit = 0.1f; mLandLimit = 0.2f; mState = eOnFall; }