Анимация CCSprite не работает? - PullRequest
0 голосов
/ 20 ноября 2011

Я создаю такой спрайт в моем методе init (mySprite объявлен в .h):

mySprite = [CCSprite spriteWithFile:@"Image1.png"];
        [mySprite setPosition:ccp(100, 300)];
        [self addChild:mySprite z:1 tag:1];

Затем в моем другом методе я пытаюсь анимировать его так, но это не так.Кажется, что это вообще не оживляет, я также знаю, что метод, в котором он находится, вызывается, потому что я его заблокировал.В любом случае вот как я пытаюсь оживить mySprite:

CCSequence *moveSequence = [CCSequence actions:[CCMoveTo actionWithDuration:5 position:ccp(120, 400)],[CCMoveTo actionWithDuration:4 position:ccp(100, 300)], nil];
    [mySprite runAction:[CCRepeatForever actionWithAction:moveSequence]];

Есть идеи, почему это может происходить?

Спасибо!

1 Ответ

1 голос
/ 21 ноября 2011

На первый взгляд эта часть кода кажется правильной, поэтому, возможно, вам нужно будет показать больше вашей общей программы, чтобы мы могли изучить, что происходит между вашей функцией init и вызываемым вами другим методом.

Пара неожиданных вещей:

  • убедитесь, что на вашем спрайте вызывается retain, чтобы он не удалялся суммарно, пока вы не покончили с ним
  • что такое "self"именно здесь, это слой кокосовых орехов?Правильно ли добавлен слой к сцене (то есть вы видите спрайт, который отображается, даже если он не двигается)?
  • Я бы также посмотрел, может ли что-нибудь произойти в графе сцены между вызовом init и вашим вторым методом, в котором вы выполняете код анимации.Есть ли где-нибудь StopAllActions?A removeFromParent или removeAllChildren, возможно?

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...