物体下落时保持加速度。

我对此一无所知,但我正在写一个应用程序,在其中必须点击才能使一个对象上升,但在某些时候,无论您点击多快,对象仍然会下降。就像重力变得越来越强一样。

编辑:我不知道要给什么代码示例,因为我不知道它是否有任何意义,但我会尝试:

这是我创建对象的方法:

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

编辑2:重力被设置为:

physics.setGravity( 0, 1.5 )

一开始只要轻点几下就足以使其保持在屏幕上,但经过几秒钟后,就无法维持它,它只会下落。我希望它以相同的速度下降而不是加速。

点赞
用户2969217
用户2969217

对于匀速运动

通过将 gravityscale 设置为0或将全局重力设置为0来抵消重力的影响,然后使用 super:setLinearVelocity(xVelocity,yVelocity) 设置 super 的速度,以达到匀速运动的效果,具体取决于你的需求。

对于有加速度的运动

如果你更喜欢具有加速度的重力,那么你现在使用的方法是可以的,但是在轻触发生时,你可以考虑设置 super:setLinearVelocity(0,0),以使物体从静止状态下落而不是继续快速下落。

2015-08-24 13:44:21