Cocos2d iphone 在cocos2d中,移动层看起来并不平滑

Cocos2d iphone 在cocos2d中,移动层看起来并不平滑,cocos2d-iphone,layer,cocos2d-x,Cocos2d Iphone,Layer,Cocos2d X,我有下面这样的代码 if(condition) sprite->setPosition(newPosition) else layer->moveBy(diff) 它工作正常,但运动不平稳。。 当精灵不在层的边界附近时,代码尝试将精灵保持在中心 setPosition和moveBy在alternate中调用,我认为这是导致不平滑的原因 1. move layer and sprite is also off the center. 2. move sprite to c

我有下面这样的代码

if(condition)
  sprite->setPosition(newPosition)
else
  layer->moveBy(diff)
它工作正常,但运动不平稳。。 当精灵不在层的边界附近时,代码尝试将精灵保持在中心

setPosition和moveBy在alternate中调用,我认为这是导致不平滑的原因

1. move layer and sprite is also off the center.  
2. move sprite to center
1. go back to 1. 
我怎样才能解决这个问题?
我想知道我是否可以把精灵单独留在屏幕中央来移动图层

不要将CCMove*操作用于此类操作。它们不能很好地处理方向的频繁变化,因为在动作执行之前存在内置的1帧延迟。如果在每帧中添加一个新的MoveTo动作,则节点很可能根本不会移动。如果你不取消之前的动作,它们会相互影响,引起各种各样的怪事。谢谢你提供的宝贵信息我的代码片段中的“moveBy”实际上不是CCAction。它只是用差分矢量来设置位置的C++函数。我通过在'else'块中设置精灵的位置和图层的位置来解决不平滑的问题。不要对这些事情使用CCMove*操作。它们不能很好地处理方向的频繁变化,因为在动作执行之前存在内置的1帧延迟。如果在每帧中添加一个新的MoveTo动作,则节点很可能根本不会移动。如果你不取消之前的动作,它们会相互影响,引起各种各样的怪事。谢谢你提供的宝贵信息我的代码片段中的“moveBy”实际上不是CCAction。它只是用差分矢量来设置位置的C++函数。我通过在“else”块中设置精灵的位置和图层的位置来解决不平滑的问题。