-------------------------------------------------------------------------------- -- Function......... : updateDynamics -- Author........... : -- Description...... : -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- function FPSCamera.updateDynamics ( ) -------------------------------------------------------------------------------- local o = this.getObject ( ) local d = this.hDynObject ( ) if ( d ~= nil ) then local oXx, oXy, oXz = object.getXAxis ( o, object.kGlobalSpace ) local oYx, oYy, oYz = object.getYAxis ( o, object.kGlobalSpace ) local oZx, oZy, oZz = object.getZAxis ( o, object.kGlobalSpace ) local fx = 0 local fy = 0 local fz = 0 if ( this.bMoveForward ( ) ) then fx, fy, fz = math.vectorSubtract ( fx, fy, fz, oZx, oZy, oZz ) elseif ( this.bMoveBackward ( ) ) then fx, fy, fz = math.vectorAdd ( fx, fy, fz, oZx, oZy, oZz ) end if ( this.bStrafeRight ( ) ) then fx, fy, fz = math.vectorAdd ( fx, fy, fz, oXx, oXy, oXz ) elseif ( this.bStrafeLeft ( ) ) then fx, fy, fz = math.vectorSubtract ( fx, fy, fz, oXx, oXy, oXz ) end fx, fy, fz = math.vectorNormalize ( fx, 0, fz ) fx, fy, fz = math.vectorScale ( fx, 0, fz, 5000 ) dynamics.addConstantForce ( d, fx, fy, fz, object.kGlobalSpace ) -- Gravity -- dynamics.addConstantForce ( d, 0, -2000, 0, object.kGlobalSpace ) end -------------------------------------------------------------------------------- end --------------------------------------------------------------------------------