如何解决如果他面前的角色还在,如何阻止他
我不知道为什么我的代码不起作用。如果他前面的角色还在,我只想停止下一个角色。我的想法是在他们的线速度为 0 时设置LinearVeLocity(0,0) 以便下一个角色知道他必须在他面前角色的线速度为 0 时停止。
local function loopPg()
local runningPG = display.newSprite(pg[math.random(5)],sequences_runningPG)
runningPG.x = display.contentCenterX
runningPG.y = display.contentCenterY-730
runningPG:scale(0.75,0.75)
runningPG:play()
physics.addBody(runningPG,"dynamic",{radius = 55})
local function pathPg()
if(runningPG.y >= -190 and runningPG.y < 160) then
runningPG:setLinearVeLocity(0,250)
elseif (runningPG.y >= 160 and runningPG.x >= 220) then
runningPG:setLinearVeLocity(-250,0)
elseif (runningPG.x <= 220 and runningPG.y <= 635) then
runningPG:setLinearVeLocity(0,250)
elseif ( runningPG.y >= 635) then
runningPG:setLinearVeLocity(0,0)
end
end
local vx,vy = runningPG:getLinearVeLocity()
if(vx == 0 and vy == 0) then
runningPG:setLinearVeLocity(0,0)
end
Runtime:addEventListener( "enterFrame",pathPg )
end
timer.performWithDelay(600,loopPg,3)
解决方法
这里有一些可以帮助你的东西:
- 字符速度函数必须参与
enterFrame
- 那么你必须从前面的角色中获取角色的速度
这不是解决方案,但可以帮助您
local function pathPg()
local vx,vy = 0,0 -- this has to be the velocity of the character in front
if(runningPG.y >= -190 and runningPG.y < 160) then
vx,250
runningPG:setLinearVelocity(vx,vy)
elseif (runningPG.y >= 160 and runningPG.x >= 220) then
vx,vy = -250,0
runningPG:setLinearVelocity(vx,vy)
elseif (runningPG.x <= 220 and runningPG.y <= 635) then
vx,vy)
elseif ( runningPG.y >= 635) then
vx,vy)
end
end
Runtime:addEventListener( "enterFrame",pathPg )
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。