菜鸟教程小白 发表于 2022-12-12 13:18:49

ios - 暂停 Sprite 上的特定 Action


                                            <p><p>我在 cocos2dx V3 中有一个 Sprite * 类型的播放器,我希望它在不同的时间间隔运行不同的动画,我找不到暂停然后恢复特定动画( Action )的方法。虽然我可以使用 _player->pauseSchedulerAndActions() 同时暂停和恢复 Sprite 的所有 Action 。我在 sprite 上使用“<code>CCRepeatForever</code>” Action ,所以,我必须暂停一个才能恢复其他 Action 。请帮助通过标签或任何其他方法暂停操作。
提前致谢。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><strong>糟糕</strong></p>

<p>我假设这是 Objective-C,但 @Droppy 告诉我不是。</p>

<p>我没有意识到 <code>cocos2d-x</code> 是不同的。但是,因为这是一个相当高级的框架,所以我在答案中所做的背后的概念仍然有效。我暂时将答案保留在这里。</p>

<p><strong>答案</strong></p>

<p>我已经有一段时间没有做任何 Cocos2D 的东西了,但我可以给你一个想法。</p>

<p>与其创建一个 Action 并永远重复它,你应该有一个类似这样的方法......</p>

<pre><code>- (void)twirlAround
{
    // only create and perform the actions if variable set to YES
    if (self.twirling) {
      // this will do your action once.
      CCAction *twirlAction = // create your twirl action (or whatever it is)

      // this will run this function again
      CCAction *repeatAction = [CCActionCallBlock actionWithBlock:^{
            ;
      }];

      // put the action and method call in sequence.
      CCActionSequence *sequence = ];

      ;
    }
}
</code></pre>

<p>只要 <code>twirling</code> 属性设置为 <code>YES</code>,它就会重复运行。</p>

<p>因此,您可以在代码中的其他位置(可能是您当前添加重复操作的位置)执行此操作...</p>

<pre><code>self.twirling = YES;
;
</code></pre>

<p>这将开始重复旋转。</p>

<p>要阻止它,你可以这样做......</p>

<pre><code>self.twirling = NO;
</code></pre>

<p>这将停止旋转。</p>

<p><strong>替代方法</strong></p>

<pre><code>- (void)twirlAround
{
    // this will do your action once.
    CCAction *twirlAction = // create your twirl action (or whatever it is)

    // this will run this function again
    CCAction *repeatAction = [CCActionCallBlock actionWithBlock:^{
      if (self.twirling) {
            ;
      }
    }];

    // put the action and method call in sequence.
    CCActionSequence *sequence = ];

    ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 暂停 Sprite 上的特定 Action ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27523930/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27523930/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 暂停 Sprite 上的特定 Action