Hi guys
I'm trying to get the hang off physics in Gideros and I'm using debug mode.
Everything setups correctly and the physics shapes work the way they are supposed to, but I can't get the images to update/stick to their physics bodies. They are created in the correct place, but not updated.
This is my EnterFrame ...
function Stage09:onEnterFrame()
self.world:step(1/60, 8, 3)
for i = 1, self.ph:getNumChildren() do
local sprite = self.ph:getChildAt(i)
if sprite.body then
local body = sprite.body
local bodyX, bodyY = body:getPosition()
sprite:setPosition(bodyX, bodyY)
sprite:setRotation(body:getAngle() * 180 / math.pi)
end
end
end |
here is one of my objects ...
S09Ball = Core.class(Sprite)
function S09Ball:init(x, y, wrld, atlas, container)
self.sprite = Bitmap.new(atlas:getTextureRegion("s05Debris.png"))
self.sprite:setAnchorPoint(0.5, 0.5)
self.sprite:setPosition(x, y)
self:addChild(self.sprite)
container:addChild(self)
local radius = self.sprite:getWidth() / 2
local body = wrld:createBody{type = b2.DYNAMIC_BODY}
body:setPosition(self.sprite:getX(), self.sprite:getY())
body:setAngle(self.sprite:getRotation() * math.pi / 180)
local circle = b2.CircleShape.new(0, 0, radius)
local fixture = body:createFixture{shape = circle, density = 1.0, friction = 0.1, restitution = 0.2}
self.sprite.body = body
self.sprite.body.type = "ball"
end |
and here is how I add it ...
self.onTouch = function(target, event)
if target:hitTestPoint(event.touch.x, event.touch.y) then
self.ball = S09Ball.new(event.touch.x, event.touch.y, self.world, self.pack, self.ph)
end
end
self:addEventListener(Event.TOUCHES_BEGIN, self.onTouch, self) |
Thanks heaps for any help
Comments
Since I'm using a class, it needs to be something like this ...
Likes: antix