我添加了我的物体(一个球),当它与一个物体碰撞时,球开始将它改变为y位置,即使我在它的位置上下施加力(上下)
local physics = require "physics"
physics.start()
--physics.setContinuous( false )
ball = display.newImage("ball.png") --MAIN OBJECT
ball.x = 100; ball.y = 100
physics.addBody(ball, "dynamic", {density=.05, bounce=0.1, friction=.2, radius=12})
screenGroup:insert(ball)
ball.myName = "ball"
function activateBall(self, event) --APPLY FORCE FUNCTION
self:applyForce(0, -1.5, self.x, self.y)
end
function onCollision (event) --BALL COLLIDES WITH JUST THIS OBSTACLES
if (event.object1.myName == "obst1") or (event.object1.myName == "obst2") then
storyboard.gotoScene("restart", "fade", 400)
audio.stop()
end
我希望球保持位置而不会随意移动。
答案 0 :(得分:0)
快速解决方案是简单地重置每个帧中的球x位置。
local ballListener = function( event )
ball.x = 100
end
Runtime:addEventListener( "enterFrame", ballListener )
答案 1 :(得分:0)
也许在applyForce()
之前,你可以setLinearVelocity()
将x值设为0,y为y值的值getLinearVelocity()
,然后是applyForce()
。可能会重置碰撞后的x速度。