Also, I just looked at your screenshot and the bodies are square and too small.
The size issue is a side-effect of scaling + newImage() + physics bodies. You’d be better off doing this:
( MAY CONTAIN TYPOS )
local physics = require "physics" physics.start() physics.setGravity( 0, 0 ) physics.setDrawMode( "hybrid" ) local img1=display.newImageRect( "sun.png", 100, 100 ) img1.x = display.contentCenterX img1.y = display.contentCenterY physics.addBody(img1,"static", { radius = 50 } ) local img2=display.newImageRect( "moon.png", 100, 100 ) img2.x = display.contentCenterX - 20 img2.y = 0 physics.addBody(img2,"dynamic", { radius = 50 } ) img2.isFixedRotation = true img2.touch = function( self, event ) if( event.phase == "began" ) then local dy = display.contentHeight - self.y self:setLinearVelocity( 0, dy/10 ) self:removeEventListener("touch") end end img2:addEventListener( "touch" )