SKAction:如何对随机重复动作进行动画处理

韦恩·哈特曼

我想进行一次重复,SKAction但是每次重复都带有随机值。在这里阅读了这个问题,它显示了一种解决方法。但是,我希望动画精灵的动作具有动画效果,而不仅仅是改变其位置。我想出的一个解决方案是运行一系列动作,最后一个动作以递归方式调用我的move方法:

- (void)moveTheBomber {
    __weak typeof(self) weakSelf = self;

    float randomX = //  determine new "randomX" position

    SKAction *moveAction = [SKAction moveToX:randomX duration:0.25f];
    SKAction *waitAction = [SKAction waitForDuration:0.15 withRange:0.4];
    SKAction *completionAction = [SKAction customActionWithDuration:0 actionBlock:^(SKNode *node, CGFloat elapsedTime) {
        [weakSelf moveTheBomber];
    }];

    SKAction *sequence = [SKAction sequence:@[moveAction, waitAction, completionAction]];

    [self.bomber runAction:sequence];
}

递归调用此方法对我来说感觉很“棘手”,但是鉴于我对SpriteKit的有限经验,这似乎是实现此目的的最明显方法。

如何永久为屏幕上的精灵随机运动设置动画?

T.本杰明·拉森

没有钟声,但是我认为这应该可以帮助您:

编辑:对不起,应该是:

SKAction *randomXMovement = [SKAction runBlock:^(void){
    NSInteger xMovement = arc4random() % 20;
    NSInteger leftOrRight = arc4random() % 2;
    if (leftOrRight == 1) {
        xMovement *= -1;
    }
    SKAction *moveX = [SKAction moveByX:xMovement y:0 duration:1.0];
    [aSprite runAction:moveX];
}];

SKAction *wait = [SKAction waitForDuration:1.0];
SKAction *sequence = [SKAction sequence:@[randomXMovement, wait]];
SKAction *repeat = [SKAction repeatActionForever:sequence];
[aSprite runAction: repeat];

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SKAction:如何对随机重复动作进行动画处理

来自分类Dev

对每个重复迭代进行动画处理

来自分类Dev

使用ngClass对CSS的随机变化进行动画处理

来自分类Dev

如何使用R的动画包对散点图进行动画处理?

来自分类Dev

如何在Qt中对QPixmap进行动画处理?

来自分类Dev

重用MKAnnotationView时如何对其外观进行动画处理

来自分类Dev

如何在Wpf中对按钮FontSize进行动画处理?

来自分类Dev

在转换为视频时如何对图像进行动画处理

来自分类Dev

如何通过windows.draw()的容器进行动画处理?

来自分类Dev

Android:如何使用矩阵对视图进行动画处理?

来自分类Dev

如何依次对图案项目进行动画处理?

来自分类Dev

如何为背景延迟而不是立即进行动画处理?

来自分类Dev

如何在Wpf中对按钮FontSize进行动画处理?

来自分类Dev

如何在Qt中对QPixmap进行动画处理?

来自分类Dev

DimpleJS-如何对图形进行动画处理并下载图形

来自分类Dev

如何以循环方式对图像进行动画处理?

来自分类Dev

如何使用jQuery对图像进行动画处理

来自分类Dev

如何调用jQuery函数:从html外部进行动画处理?

来自分类Dev

如何使用jQuery对导航栏进行动画处理

来自分类Dev

如何仅对UIImageView的内容进行动画处理

来自分类Dev

如何单独对jQuery集合项进行动画处理

来自分类Dev

Highchart如何从xaxis底线向上进行动画处理

来自分类Dev

SpriteKit如何在每次随机变化动画循环后重复SKAction?

来自分类Dev

jQuery依次对列表项进行动画处理,然后淡出列表并重复

来自分类Dev

使用键盘对UIView进行动画处理

来自分类Dev

使用Jquery对徽标进行动画处理

来自分类Dev

从左到右对div进行动画处理

来自分类Dev

滚动时对RecyclerView进行动画处理

来自分类Dev

按顺序对跨度进行动画处理

Related 相关文章

  1. 1

    SKAction:如何对随机重复动作进行动画处理

  2. 2

    对每个重复迭代进行动画处理

  3. 3

    使用ngClass对CSS的随机变化进行动画处理

  4. 4

    如何使用R的动画包对散点图进行动画处理?

  5. 5

    如何在Qt中对QPixmap进行动画处理?

  6. 6

    重用MKAnnotationView时如何对其外观进行动画处理

  7. 7

    如何在Wpf中对按钮FontSize进行动画处理?

  8. 8

    在转换为视频时如何对图像进行动画处理

  9. 9

    如何通过windows.draw()的容器进行动画处理?

  10. 10

    Android:如何使用矩阵对视图进行动画处理?

  11. 11

    如何依次对图案项目进行动画处理?

  12. 12

    如何为背景延迟而不是立即进行动画处理?

  13. 13

    如何在Wpf中对按钮FontSize进行动画处理?

  14. 14

    如何在Qt中对QPixmap进行动画处理?

  15. 15

    DimpleJS-如何对图形进行动画处理并下载图形

  16. 16

    如何以循环方式对图像进行动画处理?

  17. 17

    如何使用jQuery对图像进行动画处理

  18. 18

    如何调用jQuery函数:从html外部进行动画处理?

  19. 19

    如何使用jQuery对导航栏进行动画处理

  20. 20

    如何仅对UIImageView的内容进行动画处理

  21. 21

    如何单独对jQuery集合项进行动画处理

  22. 22

    Highchart如何从xaxis底线向上进行动画处理

  23. 23

    SpriteKit如何在每次随机变化动画循环后重复SKAction?

  24. 24

    jQuery依次对列表项进行动画处理,然后淡出列表并重复

  25. 25

    使用键盘对UIView进行动画处理

  26. 26

    使用Jquery对徽标进行动画处理

  27. 27

    从左到右对div进行动画处理

  28. 28

    滚动时对RecyclerView进行动画处理

  29. 29

    按顺序对跨度进行动画处理

热门标签

归档