CCMoveTo动作不流畅

版本:cocos2dx 2.2.2
现象:使用CCMoveTo时,动作不流畅,存在卡顿和跳动

求解,是引擎本身的bug么

开帧数看一下,还有就是你真机上看测了么? 如果电脑配置不行,虚拟机会卡顿的

小米3,每秒60帧左右

代码如下:
CCFiniteTimeAction* placeAction = CCPlace::create(ccp(size.width / 2, size.height + mSprite->getContentSize().height / 2));
CCMoveTo* moveAction = CCMoveTo::create(5, ccp(size.width / 2, -mSprite->getContentSize().height / 2));
CCSequence* action = CCSequence::create(placeAction, moveAction, NULL);
CCRepeat* repeatAction = CCRepeat::create(action, 100);

mSprite->runAction(repeatAction);

用setPositon吧

mSprite->setPosition(ccp(size.width / 2, size.height + size.height / 2));
CCMoveTo* moveAction = CCMoveTo::create(5, ccp(size.width / 2, -size.height / 2));

mSprite->runAction((CCMoveTo*)moveAction->copy());


     这样还是有卡顿和跳动

看一下是否在别的地方设置位置或者是否多次调用这些语句

只有这一个场景,代码如下(cocos2dx 2.2.2),还是会有卡顿和跳动:

bool GameArcade::init() {
if (!CCScene::init()) {
return false;
}

CCSize size = CCDirector::sharedDirector()->getVisibleSize();

mBgLayer = CCLayer::create();

mSprite = CCSprite::create("whiteBlock.png");
mSprite->setPosition(ccp(size.width / 2, size.height / 2));

mBgSprite = CCSprite::create("green2.jpg");
mBgSprite->setPosition(ccp(size.width / 2, size.height / 2));

CCSize bgSpriteOriginSize = mBgSprite->getContentSize();
mBgSprite->setScaleX(size.width / bgSpriteOriginSize.width);
mBgSprite->setScaleY(size.height / bgSpriteOriginSize.height);

CCSize spriteOriginSize = mSprite->getContentSize();
mSprite->setScaleX(size.width / spriteOriginSize.width);
mSprite->setScaleY(size.height / spriteOriginSize.height);

mBgLayer->addChild(mBgSprite, 0);
mBgLayer->addChild(mSprite, 5);

this->addChild(mBgLayer);

/*
 CCFiniteTimeAction* placeAction = CCPlace::create(ccp(size.width / 2, size.height + size.height / 2));
 CCMoveTo* moveAction = CCMoveTo::create(5, ccp(size.width / 2, -size.height / 2));
 CCSequence* action = CCSequence::create(placeAction, moveAction, NULL);
 CCRepeat* repeatAction = CCRepeat::create(action, 100);

 mSprite->runAction(repeatAction);
 */
mSprite->setPosition(ccp(size.width / 2, size.height + size.height / 2));
CCMoveTo* moveAction = CCMoveTo::create(5, ccp(size.width / 2, -size.height / 2));

mSprite->runAction((CCMoveTo*)moveAction->copy());

return true;

}

那可能是帧数不稳定吧

好像确实是刷帧不稳定导致的,应该怎么解决呢
我试了把fps设置为大于1/60,但不起作用

这个具体对待吧,例如在游戏过程中加载图片资源,可能会造成游戏卡顿,,,你应该做优化,看看什么地方花费的时间多;;;;屏蔽一些你认为有影响的语句,逐步排除吧

你的图片资源是不是很大