Hi guys, this is my game and when I start to touch the screen, the character will jump off, but currently when I do it, it is jumping countlessly. This is my full code.
-- xxx starts to jump when it is touched function xxxJump(event)      if event.phase == "began" then          xxx.enterFrame = function(self, event) self:applyForce(0, -5, self.x, self.y) end          print("Game Scene: xxxs jumps with -5")          Runtime:addEventListener("enterFrame", xxx)     print("Game Scene: xxx jumps with listener.")        elseif event.phase == "ended" then     Runtime:removeEventListener("enterFrame", xxx)         print("Game Scene: xxx ends with listener.")   end end -- "scene:create()" function scene:create( event )     local sceneGroup = self.view          -- xxx Sprite Sheet Options, width, height and number of frames     xxxImageSheet = graphics.newImageSheet("img/xxx.png", { width = 80, height = 104, numFrames = 6 })     xxx = display.newSprite(xxxImageSheet, { name="xxx", start=1, count=6, time=1000, loopCount=0, loopDirection="bounce" })     xxx.myName = "xxx"     xxx.x = -50     xxx.y = display.contentCenterY + 200     xxx:play() -- Play the animation     physics.addBody(xxx, "static", { density=.1, bounce=0.3, friction=0.1, radius=15 })     transition.to(xxx, {time = 3000, x = 150, onComplete=xxxComeToScene })     sceneGroup:insert(xxx)          -- abc Sprite Sheet Options, width, height and number of frames     abcImageSheet = graphics.newImageSheet("img/abc.png", { width = 73, height = 47, numFrames = 2 })     abc = display.newSprite(abcImageSheet, { name="abc", start=1, count=2, time=800, loopCount=0, loopDirection="bounce" })     abc.myName = "abc"     abc.x = 900     abc.y = display.contentCenterY     abc.speed = math.random(5, 10)     abc.initY = abc.y     abc.amp = math.random(50, 100)     abc.angle = math.random(1, 360)     abc:play() -- Play the animation     physics.addBody(abc, "static", { density=.1, bounce=0.3, friction=0.1, radius=20 })     transition.to(abc, { time = 2000, x = 850, onComplete=abcComeToScene })     sceneGroup:insert(abc)          --[[    -- abc Sprite Sheet Options, width, height and number of frames     abcImageSheet = graphics.newImageSheet("img/abc.png", { width = 73, height = 47, numFrames = 2 })     abc2 = display.newSprite(abcImageSheet, { name="abc2", start=1, count=2, time=800, loopCount=0, loopDirection="bounce" })     abc2.myName = "abc2"     abc2.x = 900     abc2.y = 800     abc2.speed = math.random(5, 10)     abc2.initY = abc.y     abc2.amp = math.random(20, 100)     abc2.angle = math.random(1, 360)     abc2:play() -- Play the animation     physics.addBody(abc2, "static", { density=.1, bounce=0.3, friction=0.1, radius=35 })     transition.to(abc2, { time = 2000, x = 800, onComplete=abcComeToScene })     sceneGroup:insert(abc2)    ]]--          -- bbb Sprite Sheet Options, width, height and number of frames     bbbImageSheet = graphics.newImageSheet("img/bbb.png", { width = 23, height = 20, numFrames = 2 })     bbb = display.newSprite(bbbImageSheet, { name="bbb", start=1, count=2, time=800, loopCount=0, loopDirection="bounce" })     bbb.myName = "bbb"     bbb.x = 900     bbb.y = display.contentCenterY + 100     bbb.speed = math.random(5, 10)     bbb.initY = bbb.y     bbb.amp = math.random(20, 100)     bbb.angle = math.random(1, 360)     bbb:play() -- Play the animation     physics.addBody(bbb, "static", { density=.1, bounce=0.3, friction=0.1, radius=15 })     transition.to(bbb, { time = 2000, x = 800, onComplete=abcComeToScene })     sceneGroup:insert(bbb) end -- "scene:show()" function scene:show( event )     local sceneGroup = self.view          if(event.phase == "will") then              -- hhh is moving from right to left       hhh.enterFrame = transitionFromRightToLeft       Runtime:addEventListener("enterFrame", hhh)              -- uuu is moving from right to left       uuu.enterFrame = moveFromRightToLeft       Runtime:addEventListener("enterFrame", uuu)         -- abc is moving       abc.enterFrame = abcMoves       Runtime:addEventListener("enterFrame", abc)                 bbb.enterFrame = bbbMoves       Runtime:addEventListener("enterFrame", bbb)                   -- It occurs when the screen is touched.       Runtime:addEventListener("touch", xxxJump)              xxx.collision = xxxCollide       xxx:addEventListener("collision", xxx)              abc.collision = xxxCollide       abc:addEventListener("collision", abc)              mushroomRed.collision = xxxCollide       mushroomRed:addEventListener("collision", mushroomRed)              bbb.collision = xxxCollide       bbb:addEventListener("collision", bbb)            elseif(event.phase == "did") then            end               end -- "scene:hide()" function scene:hide( event )     local sceneGroup = self.view          if (event.phase == "will") then              Runtime:removeEventListener("enterFrame", hhh)       Runtime:removeEventListener("enterFrame", uuu)       Runtime:removeEventListener("enterFrame", abc)       Runtime:removeEventListener("enterFrame", bbb)       Runtime:removeEventListener("touch", xxxJump)            xxx:removeEventListener("collision", xxx)       abc:removeEventListener("collision", abc)       mushroomRed:removeEventListener("collision", mushroomRed)            bbb:removeEventListener("collision", bbb)     elseif (event.phase == "did") then       -- Needs to put for did     end      end -- "scene:destroy()" function scene:destroy(event)     local sceneGroup = self.view end -- Listener setup scene:addEventListener("create", scene ) scene:addEventListener("show", scene ) scene:addEventListener("hide", scene ) scene:addEventListener("destroy", scene ) return scene
Edited: working code, credit to roaminggamer
function objectJump(event)      if event.phase == "began" then     object.enterFrame =        function(self, event)         -- self:applyForce(0 \* self.mass, -200 \* self.mass, self.x, self.y)             -- object:setLinearVelocity(0, -400) -- object is jumping with -300 to object.y         object:applyLinearImpulse(0, -200, object.x, object.y) -- This is working and it jumps for -200 y position       end          print("Game Scene: objects jumps with -200")             Runtime:addEventListener("enterFrame", object)     print("Game Scene: object jumps with listener.")        elseif event.phase == "ended" then          Runtime:removeEventListener("enterFrame", object)        object:setLinearVelocity(0, 0)     print("Game Scene: object ends with listener.")   end end 
      
    
