无论如何,我是一个菜鸟。我正在编写一个应用程序,您必须点击该应用程序才能获得一个对象,但在某些时候,无论您点击多快,该对象都会继续下降。它就像引力越来越强。
编辑:我不知道要提供哪些代码示例,因为我不知道它是否有意义,但我会尝试:这就是我创建对象的方式:
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 )
在开始时,只需轻点几下即可将其保留在屏幕上,但几秒钟后就无法进行维护而且只是跌落。我希望它以相同的速度下降而不加速。
答案 0 :(得分:0)
它继续加速的原因是因为重力施加恒定的力。任何受重力影响的东西都会受到加速,而不是固定的速度。
通过将gravityscale
设置为0或将全局重力设置为0来取消重力效果 - 以适合您的方式为准 - 然后使用super
设置super:setLinearVelocity( xVelocity, yVelocity )
的速度。
如果您更喜欢加速重力,那么您现在使用的方法很好,但是当点击发生时您可能会考虑super:setLinearVelocity(0, 0)
,以便物体从静止而不是继续快速下降。