物体在下降时不断加速

时间:2015-08-24 01:25:27

标签: lua corona

无论如何,我是一个菜鸟。我正在编写一个应用程序,您必须点击该应用程序才能获得一个对象,但在某些时候,无论您点击多快,该对象都会继续下降。它就像引力越来越强。

编辑:我不知道要提供哪些代码示例,因为我不知道它是否有意义,但我会尝试:

这就是我创建对象的方式:

super=display.newImage("mine.png")
super:setReferencePoint(display.BottomLeftReferencePoint)
super.y=display.contentHeight+70
super.x=display.contentWidth/2.3
super.gravityscale=1
superIntro = transition.to(super,{time=2000, y=display.contentHeight/1.2, onComplete= supergo})
physics.addBody(super, "dynamic", {density=0, bounce=0, friction=0, radius=12})`

这是我的剧本的一部分,我认为它是相关的:`

function scrollCity(self,event)
    print("touch")
    if self.y > 930 then
        self.y = 0
    else
        self.y=self.y+scrollspeed*6
    end
end

function activateJets(self,event)

self.y=self.y-scrollspeed*6
print("run")
end

function touchScreen(event)
print("p")
if event.phase == "began" then

    if super.y<display.contentHeight/1.2+6 then
        super.y=display.contentHeight/1.2
        background1.enterFrame = scrollCity
        Runtime:addEventListener("enterFrame", background1)
        background2.enterFrame = scrollCity
        Runtime:addEventListener("enterFrame", background2)
    else

        super.enterFrame = activateJets
        Runtime:addEventListener("enterFrame", super)
    end

 end
if event.phase == "ended" then

    Runtime:removeEventListener("enterFrame", super)
    Runtime:removeEventListener("enterFrame", background1)
    Runtime:removeEventListener("enterFrame", background2)

end
end

EDIT2:重力设定:

physics.setGravity( 0, 1.5 )

在开始时,只需轻点几下即可将其保留在屏幕上,但几秒钟后就无法进行维护而且只是跌落。我希望它以相同的速度下降而不加速。

1 个答案:

答案 0 :(得分:0)

它继续加速的原因是因为重力施加恒定的力。任何受重力影响的东西都会受到加速,而不是固定的速度。

用于恒速运动

通过将gravityscale设置为0或将全局重力设置为0来取消重力效果 - 以适合您的方式为准 - 然后使用super设置super:setLinearVelocity( xVelocity, yVelocity )的速度。

对于带加速度的运动

如果您更喜欢加速重力,那么您现在使用的方法很好,但是当点击发生时您可能会考虑super:setLinearVelocity(0, 0),以便物体从静止而不是继续快速下降。