用quick做重力感应为什么会卡?

local ball = display.newSprite("scene/blood-1.png", display.cx, display.height*0.3)
self:addChild(ball)
local pLayer = CCLayer:create()
self:addChild(pLayer)
pLayer:setAccelerometerEnabled(true);
local function didAccelerate(x,y,z,timestamp)
    --print(x,y,z,timestamp)
    local px,py = ball:getPosition()
    px = px + x*50
    py = py + y*50
    ball:setPosition(ccp(px,py))
end
pLayer:registerScriptAccelerateHandler(didAccelerate)

为什么这个用重力感应动起来这个图片感觉很卡????是不是通过lua转换处理得慢?
50改成9.8也一样卡。。。

重力感应的频率不是每秒60次,所以图片移动并不平滑。

要想平滑流畅,你得自己跟踪每次重力感应事件提供的xyz,然后在帧事件里计算出图片的移动偏移量并更新位置。

!!!感谢。

— Begin quote from ____

引用第1楼dualface于2014-05-23 17:14发表的 :
重力感应的频率不是每秒60次,所以图片移动并不平滑。

要想平滑流畅,你得自己跟踪每次重力感应事件提供的xyz,然后在帧事件里计算出图片的移动偏移量并更新位置。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=203126&pid=959527

— End quote

我现在的做法是每次感应到重力后对根据xyz对精灵做一个moveBy操作,moveBy的时长为两次重力感应间隔,像我这样处理发现有一些问题:

  1. ios, android平台表现不一致,似乎同样的api调用参数,在两个平台的解释不同
  2. pad和移动不如安卓平滑,iPhone上表现更加卡顿,有时候移动还越来越快

请教一下,在帧事件里更新位置,会有什么不一样? 如果重力感应频率也是60,应该没什么区别吧

— Begin quote from ____

引用第1楼dualface于2014-05-23 17:14发表的 :
重力感应的频率不是每秒60次,所以图片移动并不平滑。

要想平滑流畅,你得自己跟踪每次重力感应事件提供的xyz,然后在帧事件里计算出图片的移动偏移量并更新位置。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=203126&pid=959527

— End quote

非常感谢,折腾两天,找到症结所在。