作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 objective-c 在 Spritekit 中创建一个 SKActions 数组,以便两个数组并行执行。 “旋转”不是一个适合我的数组,除非它引起了我怀疑是这里问题的问题。我对这段代码的期望是 actionMove 和旋转将并行运行,然后它继续移动到 actionMove1 和 actionMove2 并完成 runAction。我在下面显示的最后一行代码中收到以下错误(仅添加了所需的代码部分)。
“SKAction *__strong [3]”类型的集合元素不是 Objective-C 对象
SKAction * actionMove = [SKAction moveTo:CGPointMake(actualX2, actualY2) duration:actualDuration];
SKAction * actionMove1 = [SKAction moveTo:CGPointMake(actualX3, actualY3) duration:actualDuration];
SKAction * actionMove2 = [SKAction moveTo:CGPointMake(actualX4, actualY4) duration:actualDuration];
int rotate = arc4random() % 5;
SKAction * rotation = [SKAction rotateByAngle:M_PI/rotate duration:0.5];
SKAction * moveArray[] = {actionMove, actionMove1, actionMove2};
[game_piece1 runAction:[SKAction group:@[moveArray, rotation]]];
最佳答案
我相信您想要的是 group: 和 sequence: Action 的组合。组将一起运行,序列将等待上一个 Action 完成。
SKAction * actionMove = [SKAction moveTo:CGPointMake(actualX2, actualY2) duration:actualDuration];
SKAction * actionMove1 = [SKAction moveTo:CGPointMake(actualX3, actualY3) duration:actualDuration];
SKAction * actionMove2 = [SKAction moveTo:CGPointMake(actualX4, actualY4) duration:actualDuration];
int rotate = arc4random() % 5;
SKAction * rotation = [SKAction rotateByAngle:M_PI/rotate duration:0.5];
SKAction *firstStep = [SKAction group:@[actionMove, rotation]];
SKAction *sequence = [SKAction sequence:@[firstStep, actionMove1, actionMove2]];
[game_piece1 runAction:sequence];
您可能会发现此链接有帮助 Adding Actions to Nodes它在显示不同的组和序列方面做得很好。
希望这会给你想要的结果。
编辑
如果您希望在按顺序运行移动 Action 的同时运行旋转,它看起来像这样。
SKAction * actionMove = [SKAction moveTo:CGPointMake(actualX2, actualY2) duration:actualDuration];
SKAction * actionMove1 = [SKAction moveTo:CGPointMake(actualX3, actualY3) duration:actualDuration];
SKAction * actionMove2 = [SKAction moveTo:CGPointMake(actualX4, actualY4) duration:actualDuration];
int rotate = arc4random() % 5;
SKAction * rotation = [SKAction rotateByAngle:M_PI/rotate duration:0.5];
SKAction *sequence = [SKAction sequence:@[actionMove, actionMove1, actionMove2]];
SKAction *group = [SKAction group:@[sequence, rotation]];
[game_piece1 runAction:group];
关于ios - 如何在 Spritekit 中创建一个 SKActions 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28955058/
我是一名优秀的程序员,十分优秀!