• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 暂停 Sprite 上的特定 Action

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:18:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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



Best Answer-推荐答案


糟糕

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

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

答案

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

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

- (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:^{
            [self twirlAround];
        }];

        // put the action and method call in sequence.
        CCActionSequence *sequence = [CCActionSequence actions[twirlAction, repeatAction]];

        [self runAction:sequence];
    }
}

只要 twirling 属性设置为 YES,它就会重复运行。

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

self.twirling = YES;
[self twirlAround];

这将开始重复旋转。

要阻止它,你可以这样做......

self.twirling = NO;

这将停止旋转。

替代方法

- (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) {
            [self twirlAround];
        }
    }];

    // put the action and method call in sequence.
    CCActionSequence *sequence = [CCActionSequence actions[twirlAction, repeatAction]];

    [self runAction:sequence];
}

关于ios - 暂停 Sprite 上的特定 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523930/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap