physics.start(noSleep)似乎无效。

我有以下场景:

enter image description here

我想用重力移动球,所以我写了以下内容:

function onTilt( event )
    deltaDegreesXText.text = "xG: " .. (9.8*event.xGravity)
    deltaDegreesYText.text =  "yG: " .. (-9.8*event.yGravity)
    if(ball.isAwake==true)then
        fallAsleepText.text = "True "
    elseif(ball.isAwake==false)then
        fallAsleepText.text = "False "
    end

    physics.setGravity( ( 9.8 * event.xGravity ), ( -9.8 * event.yGravity ) )
end

问题在于,几秒后球体对象就会进入睡眠状态,不再移动。在代码的开始处我有以下内容:

enter image description here

local storyboard = require( "storyboard" )
local scene = storyboard.newScene()

system.setIdleTimer( false )

local physics = require "physics"
local physicsData = (require "myphysics").physicsData(1.0)
physics.start( true)

有什么主意出了问题吗?为什么 physics.start(noSleep)不起作用,或者我如何阻止球体进入睡眠状态?

原文链接 https://stackoverflow.com/questions/18786461

点赞
stackoverflow用户1026645
stackoverflow用户1026645

嗯,这很奇怪。你试过在物体定义中禁用睡眠了吗?

body.isSleepingAllowed = false;
2013-09-13 15:20:47
stackoverflow用户2277094
stackoverflow用户2277094

是的,我尝试了这个,一开始它没起作用。最终的问题是因为我写成了:

ball.isSleepingAllowed = false
physics.addBody (ball, physicsData:get("ball"))

但正确的应该是:

physics.addBody (ball, physicsData:get("ball"))
ball.isSleepingAllowed = false

我应该先给球添加物理属性,然后使用 body.isSleepingAllowed = false;,反之则不起作用。

2013-09-13 18:49:04