Я использую cocos2dx v3.11.1 с C++ для создания простой игры для платформы iOS. Но я столкнулся с странной проблемой с движением спрайтов.cocos2d - Sprite не отображается должным образом
Определение основных объектов выглядит следующим образом:
Sprite *logoBackSprite;
SpriteFrameCache *cache;
SpriteBatchNode *batchNode;
создать спрайт из списка свойств, как, что:
cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile("game_sprites1.plist");
batchNode = SpriteBatchNode::create("game_sprites1.png");
addChild(batchNode);
logoBackSprite = Sprite::createWithSpriteFrameName(fileName);
logoBackSprite->setPosition(Vec2(centerPoint.x-4, centerPoint.y + 200-43));
addChild(logoBackSprite, 0);
После этой функции я вызова, который должен выполнить простую скользящую анимацию для спрайта. Код этой функции выглядит так:
void MainMenuScene::playMenuAnimations() {
float startDelay = 0.0f;
auto windowSize = Director::getInstance()->getVisibleSize();
Point centerPoint = Vec2(windowSize.width/2, windowSize.height/2);
logoBackSprite->stopAllActions();
logoBackSprite->setOpacity(0);
logoBackSprite->runAction(Sequence::create(DelayTime::create(startDelay + 0.5 + 0.75),
FadeTo::create(0.5f, 255),
nullptr));
}
Но когда я запускаю приложение - ничего не происходит. Не могли бы вы указать мне, что я делаю неправильно? Спасибо.
EDIT После нескольких часов экспериментов я заметил, что метод runAction объектов спрайтов не работает. Например, я создал вектор кадров спрайтов, и я хочу запустить анимацию. Когда я запускаю приложение, я вижу этот спрайт, но анимация все еще не работает. Может быть, я пропустил что-то важное?
EDIT2 Сегодня я заметил, что любое действие работает префектом на предыдущей сцене.