Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local physics = require "physics"
- physics.start()
- physics.setGravity(0, 0)
- local rock = display.newGroup(display.newCircle(0, 0, 30))
- physics.addBody(rock, "kinematic", {radius = 30})
- rock.x, rock.y = display.contentWidth, display.contentHeight * 0.25
- rock:setLinearVelocity(-50, 15)
- local function stick(event)
- local self, other = event.target, event.other
- self:removeEventListener('collision', stick)
- timer.performWithDelay(0,
- function()
- physics.removeBody(self)
- local x, y = self:localToContent(0, 0)
- other:insert(self)
- self.x, self.y = other:contentToLocal(x, y)
- timer.performWithDelay(5000, function(...) if self and self.removeSelf then self:removeSelf() end end)
- end
- )
- end
- local function spawn()
- local self = display.newCircle(display.contentCenterX, display.contentCenterY * 1.5, 6)
- self:setFillColor(0xFF, 0x00, 0x00)
- physics.addBody(self, 'dynamic', {radius = 5})
- self:setLinearVelocity(0, -150)
- self:addEventListener('collision', stick)
- local function monitor()
- local bounds = self and self.contentBounds
- if not bounds or bounds.xMin > display.contentHeight or bounds.xMax < 0 or bounds.yMax < 0 or bounds.yMin > display.contentHeight then
- if self and self.removeSelf then self:removeSelf() end
- Runtime:removeEventListener('enterFrame', monitor)
- end
- end
- Runtime:addEventListener('enterFrame', monitor)
- end
- timer.performWithDelay(500, spawn, 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement