【问题标题】:Play animation after another animation on sprite在精灵上播放另一个动画后播放动画
【发布时间】:2023-03-22 13:07:02
【问题描述】:

我已经查看了所有内容,但找不到任何有关如何执行此操作的信息。我想运行一个动作动画,然后在该动画完成后我希望它在同一个精灵上运行另一个动作动画。这怎么可能?

    [self.mainShip runAction:retractdoor];
    [self.mainShip runAction:activatedoor];

这让我崩溃。

    self.mainShip runAction: [CCSequence actions:retractdoor,activatedoor, nil];

给我一​​个黄色通知

不兼容的指针类型将抄送操作发送到 ccfinite 时间操作类型的参数

CCAnimation *retractdoorAnimation = [CCAnimation
                                         animationWithSpriteFrames:retractdoorframes delay:0.1f];
    CCAnimation *activatedoorAnimation = [CCAnimation
                                           animationWithSpriteFrames:activatedoorframes delay:0.1f];

self.retractdoorAction = [CCAnimate actionWithAnimation:retractdoorAnimation];
self.activatedoorAction = [CCAnimate actionWithAnimation:activatedoorAnimation];

【问题讨论】:

  • self.mainShip runAction: [CCSequence actions: [retractdoor] [activatedoor]]; - 怎么编译
  • self.mainShip runAction: [CCSequence actions: retractdoor, activatedoor, nil];,不调用方法不能使用方括号,必须用逗号分隔,必须以nil结束。那永远不会编译。
  • 显示你声明这两个动作的代码。
  • 我在我编辑的帖子中添加了它们

标签: iphone objective-c animation cocos2d-iphone


【解决方案1】:

你错过了 nil 终止。

[self.mainShip runAction: [CCSequence actions:retractdoor,activatedoor, nil]];

这应该可以,不要使用方括号,也不要错过逗号..

【讨论】:

  • 不兼容的指针类型将抄送操作发送到 ccfinite 时间操作类型的参数
  • 因为CCAnimation不是CCAction,所以需要做类似CCAnimate *anim1 = [CCAnimate actionWithAnimation:retractdoorAnimation restoreOriginalFrame:NO];然后将 anim1 放入序列中
猜你喜欢
  • 2017-10-04
  • 2020-06-26
  • 2015-11-26
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多