Why there isn’t any collision with “theFloor” and with “ceiling”. Probably the questions is elementary but i’m a new young developer.
Here the code:
function scene:createScene(event) local screenGroup = self.view local background = display.newImage("bg.png") screenGroup:insert(background) ceiling = display.newImage("invisibleTile.png") ceiling:setReferencePoint(display.BottomLeftReferencePoint) ceiling.x = 0 ceiling.y = -5 ceiling.name = "ceiling" physics.addBody(ceiling, "static", {density=0.1, friction=0.2, bounce=0.1}) screenGroup:insert(ceiling) theFloor = display.newImage("invisibleTile.png") theFloor:setReferencePoint(display.BottomLeftReferencePoint) theFloor.x = 0 theFloor.y = 350 theFloor.name = "theFloor" physics.addBody(theFloor, "static", {density=0.1, friction=0.2, bounce=0.1}) screenGroup:insert(theFloor) jetSpriteSheet = sprite.newSpriteSheet("jet.png", 50, 17) jetSprites = sprite.newSpriteSet(jetSpriteSheet, 1, 4) sprite.add(jetSprites, "jets", 1, 4, 4000, 0) jet = sprite.newSprite(jetSprites) jet.x = -80 jet.y = 100 jet:prepare("jets") jet:play() jet.collided = false jet.name = "jetPlayer" physics.addBody(jet, "static", {density = 0.1, friction = 0.2, bounce = 0.1, radius = 12}) screenGroup:insert(jet) jetintro = transition.to(jet, {time = 2000, x=100, onComplete=jetReady}) mine1 = display.newImage("mine.png") mine1.name = "mine" mine1.x = 500 mine1.y = math.random(90,260) mine1.speed = math.random(2,6) mine1.initY = mine1.y mine1.amp = math.random(20,140) mine1.angle = math.random(1,360) physics.addBody(mine1, "static", {density = 0.1, friction = 0.2, bounce = 0.1, radius = 12}) screenGroup:insert(mine1) mine2 = display.newImage("mine.png") mine2.name = "mine" mine2.x = 500 mine2.y = math.random(90,260) mine2.speed = math.random(2,6) mine2.initY = mine2.y mine2.amp = math.random(20,140) mine2.angle = math.random(1,360) physics.addBody(mine2, "static", {density = 0.1, friction = 0.2, bounce = 0.1, radius = 12}) screenGroup:insert(mine2) mine3 = display.newImage("mine.png") mine3.name = "mine" mine3.x = 500 mine3.y = math.random(90,260) mine3.speed = math.random(2,6) mine3.initY = mine3.y mine3.amp = math.random(20,140) mine3.angle = math.random(1,360) physics.addBody(mine3, "static", {density = 0.1, friction = 0.2, bounce = 0.1, radius = 12}) screenGroup:insert(mine3) end function moveMines(self, event) if self.x \< -50 then self.x = 500 self.y = math.random(90,260) self.speed = math.random(2,6) self.amp = math.random(20,140) self.angle = math.random(1,360) else self.x = self.x - self.speed self.angle = self.angle + 0.1 self.y = self.amp \* math.sin(self.angle) + self.initY end end function jetReady() jet.bodyType = "dynamic" end function activateJet(self, event) if self.y \> 30 then self:applyForce(0, -1.2, self.x, self.y) end end function touchScreen(event) if event.phase == "began" then jet.enterFrame = activateJet Runtime:addEventListener("enterFrame", jet) end if event.phase == "ended" then Runtime:removeEventListener("enterFrame", jet) end end function gameOver() storyboard.gotoScene( "restart", "fade", 400) end function onCollision(event) if event.phase == "began" then if event.object1.name == "jetPlayer" then if event.object2.name == "ceiling" then print ("hit") print (event.object1.name) print (event.object2.name) elseif event.object2.name == "theFloor" then print ("hit") print (event.object1.name) print (event.object2.name) elseif event.object2.name == "mine" then print ("hit") print (event.object1.name) print (event.object2.name) end end end end function scene:enterScene(event) storyboard.purgeScene("start") storyboard.purgeScene("restart") Runtime:addEventListener("touch", touchScreen) city1.enterFrame = scrollCity Runtime:addEventListener("enterFrame", city1) city2.enterFrame = scrollCity Runtime:addEventListener("enterFrame", city2) city3.enterFrame = scrollCity Runtime:addEventListener("enterFrame", city3) city4.enterFrame = scrollCity Runtime:addEventListener("enterFrame", city4) mine1.enterFrame = moveMines Runtime:addEventListener("enterFrame", mine1) mine2.enterFrame = moveMines Runtime:addEventListener("enterFrame", mine2) mine3.enterFrame = moveMines Runtime:addEventListener("enterFrame", mine3) Runtime:addEventListener("collision", onCollision) end function scene:exitScene(event) Runtime:removeEventListener("touch", touchScreen) Runtime:removeEventListener("enterFrame", city1) Runtime:removeEventListener("enterFrame", city2) Runtime:removeEventListener("enterFrame", city3) Runtime:removeEventListener("enterFrame", city4) Runtime:removeEventListener("enterFrame", mine1) Runtime:removeEventListener("enterFrame", mine2) Runtime:removeEventListener("enterFrame", mine3) Runtime:removeEventListener("collision", onCollision) end function scene:destroyScene(event) end scene:addEventListener("createScene", scene) scene:addEventListener("enterScene", scene) scene:addEventListener("exitScene", scene) scene:addEventListener("destroyScene", scene) return scene