Quick 3.3rc1 重力感应问题。

以前的版本重力感应是正常的。

现在试,偶尔是正常的。经常往一个方向斜就回不来了。就打印x,y看得很清楚重力这几个值不准。

然后有时放那过一段时间,又变正常了。

谁遇到了么?我觉得应该不是lua脚本的问题吧。

这个要测试看是不是底层引擎的问题,lua这边只作了导出

— Begin quote from ____

引用楼主masterk于2014-12-08 16:30发表的 quick 3.3rc1 重力感应问题。 :
以前的版本重力感应是正常的。

现在试,偶尔是正常的。经常往一个方向斜就回不来了。就打印x,y看得很清楚重力这几个值不准。

然后有时放那过一段时间,又变正常了。
http://www.cocoachina.com/bbs/job.php?action=topost&tid=274173&pid=tpc

— End quote

折腾我好久,不知道是不是同一个问题。

  1. 设备休眠,或切换app后,再切回到游戏,100%会出现重力感应漂移

另外还有quick3.3的几个问题:

  1. shortcode.lua中封装的Layer:onAccelerate根本没用,感受不到重力调用嗯

  2. 必须用以下代码才能起用重力感应
    accLayer = cc.Layer:create()
    accLayer:enableAccelerometer(true)
    accLayer:registerScriptAccelerateHandler(fun)
    accLayer:setAccelerometerInterval(interval)
    self:addChild(accLayer)

  3. 接上面,displayer.newLayer()创建出的layer是个node,重力无能,必须是cc.Layer:create()创建layer

  4. cc.bPlugin_是个什么东西

function display.newLayer()
local layer

if 

cc.bPlugin_ then
layer = display.newNode()
layer:setContentSize(display.width, display.height)
layer:setTouchEnabled(true)
else
layer = cc.Layer:create()
end

return layer

end

刚刚搜索下帖子,原来shortcode.lua中的layer对应cc.Layer:create(), 那么求Layer:onAccelerate的正确调用方式

— Begin quote from ____

引用楼主masterk于2014-12-08 16:30发表的 quick 3.3rc1 重力感应问题。 :
以前的版本重力感应是正常的。

现在试,偶尔是正常的。经常往一个方向斜就回不来了。就打印x,y看得很清楚重力这几个值不准。

然后有时放那过一段时间,又变正常了。
http://www.cocoachina.com/bbs/job.php?action=topost&tid=274173&pid=tpc

— End quote

我的测试结果:

当设备反向切换姿态时,打印出的重力参数要延时一会才能取到正确在值。

比如左侧斜的时候 x = -0.9xx, 此时切换成右侧斜,打印出的x值在一段时间内还是负数,过了这段时间才变正

在代码中重建感应Layer也没用,切换到别的scene然后再重进scene也偶尔可恢复, 更多情况下要杀掉,重启app才正常

就是设什么帧率就好了。默认是60还是100设备反应不过来。改成30就好了。