Difference between revisions of "R3d.Body:setLinearVelocity"

From GiderosMobile
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
Line 5: Line 5:
 
Sets the body linear velocity.
 
Sets the body linear velocity.
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
r3d.Body:setLinearVelocity(number)
+
r3d.Body:setLinearVelocity(vx,vy,vz)
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Parameters ===
 
=== Parameters ===
'''number''': (number) body linear velocity
+
'''vx''': (number) new body x axis linear velocity<br/>
 +
'''vy''': (number) new body y axis linear velocity<br/>
 +
'''vz''': (number) new body z axis linear velocity<br/>
  
 
=== Example ===
 
=== Example ===
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 +
m = player1.body:getTransform()
 +
rx, ry, rz = m:getRotationX(), m:getRotationY()+270, m:getRotationZ() -- XXX
 +
if isup then
 +
-- ^< deg Convert 'deg' into radians
 +
player1.body:setLinearVelocity(math.cos(^<ry)*0.7*32, 0, -math.sin(^<ry)*0.7*32)
 +
end
 +
if isdown then
 +
-- ^< deg Convert 'deg' into radians
 +
player1.body:setLinearVelocity(-math.cos(^<ry)*0.7*32, 0, math.sin(^<ry)*0.7*32)
 +
end
 +
if isleft then player1.body:applyWorldTorque(0, 0.31*32, 0) end
 +
if isright then player1.body:applyWorldTorque(0, -0.31*32, 0) end
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
{{R3d.Body}}
 
{{R3d.Body}}

Latest revision as of 09:59, 18 December 2025

Available since: Gideros 2020.2
Class: R3d.Body

Description

Sets the body linear velocity.

r3d.Body:setLinearVelocity(vx,vy,vz)

Parameters

vx: (number) new body x axis linear velocity
vy: (number) new body y axis linear velocity
vz: (number) new body z axis linear velocity

Example

	m = player1.body:getTransform()
	rx, ry, rz = m:getRotationX(), m:getRotationY()+270, m:getRotationZ() -- XXX
	if isup then
		-- ^< deg Convert 'deg' into radians
		player1.body:setLinearVelocity(math.cos(^<ry)*0.7*32, 0, -math.sin(^<ry)*0.7*32)
	end
	if isdown then
		-- ^< deg Convert 'deg' into radians
		player1.body:setLinearVelocity(-math.cos(^<ry)*0.7*32, 0, math.sin(^<ry)*0.7*32)
	end
	if isleft then player1.body:applyWorldTorque(0, 0.31*32, 0) end
	if isright then player1.body:applyWorldTorque(0, -0.31*32, 0) end