使用按钮动画加载场景异步时出现问题

目标D

我试图在主菜单中实现一个动画启动按钮。因为加载场景需要一段时间,所以我想用该按钮动画来缩短等待时间。不幸的是,动画无法开始。我的代码有什么问题?

-(void)buttonAnimation{
    SKAction *HUDzoom = [SKAction scaleTo:3 duration:1];
    SKAction *HUDzoomOut = [SKAction scaleTo:1.0 duration:1];
    SKAction *HUDAnimation = [SKAction sequence:@[HUDzoom, HUDzoomOut]];

    [self.startButton runAction:[SKAction repeatActionForever:HUDAnimation]];
}

-(void)loadScene{
    SKScene *restart = [[Level_1 alloc] initWithSize:self.size];
    [self.view presentScene:restart];
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInNode:self];

    SKNode *node = [self nodeAtPoint:location];

    if ([node.name isEqualToString:@"startLevel1"]){

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
                [self loadScene];
            dispatch_async(dispatch_get_main_queue(), ^{
                [self buttonAnimation];
            });
        });

    }
}
学习Cocos2D

这是因为您是异步加载场景的,只有在这样做之后,您才能异步启动按钮动画:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
    // loading the scene
    [self loadScene];

    // when scene has finished loading, animate the button asynchronically
    // (this makes no sense)
    dispatch_async(dispatch_get_main_queue(), ^{
        [self buttonAnimation];
    });
});

相反,您应该开始动画,然后异步加载场景。

[self buttonAnimation];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
        [self loadScene];
});

该按钮由Sprite Kit动作设置动画,虽然您可以异步启动动画,但它不会使整个动画异步。相反,您只需要确保任何阻塞方法(如loadScene)都可以异步运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用jQuery为按钮设置动画时出现问题:不会隐藏

来自分类Dev

使用Angular Dart中的“单选”按钮时出现问题

来自分类Dev

使用jQuery动态创建按钮时出现问题

来自分类Dev

使用 Selenium 和 Java 单击按钮时出现问题

来自分类Dev

从AndroidKeystore加载私钥时出现问题

来自分类Dev

加载jquery接口时出现问题,

来自分类Dev

加载链接列表时出现问题

来自分类Dev

验证提交按钮时出现问题

来自分类Dev

运行“加载更多”按钮并在旧信息上方显示新信息时出现问题

来自分类Dev

加载时出现svg动画问题

来自分类Dev

使用Vuejs和FileReader在异步循环中创建JSON数据时出现问题

来自分类Dev

使用具有异步功能的CLS运行Jest时出现问题

来自分类Dev

尝试使用 matplotlib 为布朗运动设置动画时出现问题

来自分类Dev

动画和单击链接时出现问题

来自分类Dev

使用Moment模块时出现问题

来自分类Dev

使用ArrayWritables时出现问题

来自分类Dev

使用ejs语法时出现问题

来自分类Dev

使用多个列表时出现问题

来自分类Dev

使用GLM时出现问题

来自分类Dev

使用JQuery Toggle时出现问题

来自分类Dev

使用SAP网站时出现问题

来自分类Dev

使用“清除”命令时出现问题

来自分类Dev

使用viewDidLayoutSubviews时出现问题

来自分类Dev

尝试使用cProfile时出现问题

来自分类Dev

使用 UISearchResults 过滤时出现问题

来自分类Dev

使用VBA提交网页时出现问题-使用单击按钮功能,但网页无法提交

来自分类Dev

使用Assimp和OpenGL加载和绘制.obj模型时出现问题

来自分类Dev

在PHP 7.4中使用FFI加载库时出现问题

来自分类Dev

使用gensim加载经过训练的快速文本模型时出现问题

Related 相关文章

热门标签

归档