Difference between revisions of "B2.Body"
Line 6: | Line 6: | ||
A rigid body. These are created via `b2.World:createBody`.<br /> | A rigid body. These are created via `b2.World:createBody`.<br /> | ||
<br /> | <br /> | ||
+ | === Examples === | ||
+ | '''Creating Box2d body and moving Bitmap along the body'''<br/> | ||
+ | <source lang="lua">require "box2d" | ||
+ | local world = b2.World.new(0, 10, true) | ||
+ | |||
+ | --create ball bitmap object from ball graphic | ||
+ | local ball = Bitmap.new(Texture.new("ball.png")) | ||
+ | --reference center of the ball for positioning | ||
+ | ball:setAnchorPoint(0.5,0.5) | ||
+ | |||
+ | ball:setPosition(100,100) | ||
+ | |||
+ | --get radius | ||
+ | local radius = ball:getWidth()/2 | ||
+ | |||
+ | --create box2d physical object | ||
+ | local body = world:createBody{type = b2.DYNAMIC_BODY} | ||
+ | local circle = b2.CircleShape.new(0, 0, radius) | ||
+ | local fixture = body:createFixture{shape = circle, density = 1.0, | ||
+ | friction = 0.1, restitution = 0.2} | ||
+ | ball.body = body | ||
+ | |||
+ | --add to scene | ||
+ | stage:addChild(ball) | ||
+ | |||
+ | stage:addEventListener(Event.ENTER_FRAME, function() | ||
+ | -- edit the step values if required. These are good defaults! | ||
+ | world:step(1/60, 8, 3) | ||
+ | ball:setPosition(ball.body:getPosition()) | ||
+ | ball:setRotation(math.rad(ball.body:getAngle())) | ||
+ | end)</source> | ||
{|- | {|- | ||
| style="width: 50%;"| | | style="width: 50%;"| |
Revision as of 10:45, 23 August 2018
Supported platforms: android, ios, mac, pc
Available since: Gideros 2011.6
Description
A rigid body. These are created via `b2.World:createBody`.
Examples
Creating Box2d body and moving Bitmap along the body
require "box2d"
local world = b2.World.new(0, 10, true)
--create ball bitmap object from ball graphic
local ball = Bitmap.new(Texture.new("ball.png"))
--reference center of the ball for positioning
ball:setAnchorPoint(0.5,0.5)
ball:setPosition(100,100)
--get radius
local radius = ball:getWidth()/2
--create box2d physical object
local body = world:createBody{type = b2.DYNAMIC_BODY}
local circle = b2.CircleShape.new(0, 0, radius)
local fixture = body:createFixture{shape = circle, density = 1.0,
friction = 0.1, restitution = 0.2}
ball.body = body
--add to scene
stage:addChild(ball)
stage:addEventListener(Event.ENTER_FRAME, function()
-- edit the step values if required. These are good defaults!
world:step(1/60, 8, 3)
ball:setPosition(ball.body:getPosition())
ball:setRotation(math.rad(ball.body:getAngle()))
end)
Methodsb2.Body:applyAngularImpulse - applies an angular impulse |
EventsConstants |