问题标签 [skaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
167 浏览

objective-c - SKAction 在 [SKScene enumerateObjectsUsingBlock:] 时不起作用

SKAction在从我的SKScene. 当我尝试这样做时,SKAction 仅在 10-40 的前 2-4 个精灵中执行。如果我发表评论[node runAction:action];并且[node removeFromParent];一切正常。有人可以帮助我,我在这里做错了什么:

如您所见,所有SKActions 都在这里评论并且一切正常,但是我如何使用动画来做到这一点?我已经尝试了很多不同SKAction的 s 甚至sequencegroup, runWithCompletion:- 结果相同,适用于几个 first SKNodes,但尝试运行数十个。

0 投票
1 回答
5444 浏览

ios - 用它的孩子调整 SKSpriteNode 的大小

我正在尝试在具有一个孩子的 SKSpriteNode 上运行一系列 SKActions,所有操作都在 2 个形状上一起执行,除了:

这是我的代码:

}

0 投票
1 回答
1102 浏览

ios - 遵循 SKAction 的路径不起作用

我有一个 CGMuatbleCGPathRef,我正在尝试创建一个路径参考来移动我的外星人。我现在保持简单,但以后会很复杂。

我有下面的代码将 SpriteNode 移动到一点,但他从不移动。有人可以指出我做错了什么吗?我有一个动画动作在他身上运行,也有重复动作。

首先调用的方法来启动动画纹理帧(作品)

移动外星人的行动

}

0 投票
1 回答
1433 浏览

ios - SKAction followPath,创建路径

我正在使用一个简单的 A* 寻路算法来创建两点之间的路径(下面的绿色和红色圆圈),每个正方形都是一个 SKSpriteNode(具有CGPoint[x,y] 位置)。我想SKSpriteNode沿着通过每个点的平滑路径为另一个设置动画。

我的想法是我可以使用SKAction -followPath:duration:来执行此操作,但我无法弄清楚如何创建/指定CGPath. 任何帮助将非常感激。

在此处输入图像描述

0 投票
1 回答
960 浏览

objective-c - 如何在精灵上设置水平来回运动?

我正在编写一个游戏,我正在生成一些在同一水平面上移动的精灵,即它们的 y 坐标始终相同。我不确定物理学,而只是 SKActions。最初我写这个是为了在位置 Y 生成精灵,然后以随机选择的方向移动到屏幕外的一个点。现在,我希望这个精灵转身并向后走,直到它碰到屏幕的另一端,我希望它再次转身,等等。

最初,我将操作设置为:

其中目的地和持续时间基本上是随机生成的。这显然只在一个方向上移动精灵。

有什么优雅的方法可以让精灵变成一个永无止境的循环,一遍又一遍地重复它们的路径?

0 投票
1 回答
350 浏览

ios - 与 SKAction followPath 一起使用的平滑路径拐角

我正在研究如何最好地绕过拐角,CGPathRef这样当我召唤SKAction -followPath:asOffset:orientToPath:duration:我的僵尸时,它会平滑地在拐角处进行动画处理,而不是每次小家伙拐角时都会折断 90 度。网络上(和 SO)似乎有一些关于使用 Catmull-Rom 样条线的解决方案,我在做 3D 动画时很熟悉这些样条线。

我的问题:是否有人知道添加圆角的简单方法,实现 Catmull-Rom 似乎有点超出我的需要。

其次:如果它确实需要是 Catmull-Rom 有多容易。很难将结果曲线恢复为 aCGPathRef以便我可以将其输入到我的SKAction?

注意:路径是由一个简单的 A* 实现生成的,该实现存储了许多 CGPoint [x,y] 路点,然后我想将其用作路径的基础。如果可能的话,我不想使用贝塞尔曲线,因为我想让新路径靠近瓷砖中心线以避免可碰撞的物体。当我几乎到达初始路径近似所需的位置时,我也不想开始计算船体的 ctrl 点。

在此处输入图像描述

0 投票
1 回答
1079 浏览

sprite-kit - 随机化 SKAction

我正在尝试从左到右在屏幕上移动 Sprite。精灵应该从屏幕右侧右侧的随机 y 位置开始。使用 repeatActionForever 和带有随机 Y 数的整数,我希望精灵从不同的 y 位置开始重复动作。除了将随机 int 放入更新方法之外,关于如何实现这一点的任何想法?无论如何,它可以通过行动来实现吗?

我在 Sprite 上使用这种方法:

0 投票
3 回答
6811 浏览

ios - 如何在 Sprite Kit 中创建一个永远循环的自动反转动画?

我正在尝试做一个简单的自动反转动画。

但行动并没有逆转。你如何获得类似 Core Animation 的自动反转效果?

0 投票
1 回答
2288 浏览

sprite-kit - 按顺序运行已完成的 SKAction

我使用此代码作为基础来创建一个容器,该容器由许多精灵组成,因此我可以将它们作为一个实体移动。一切正常,除非我在容器过程完成之前开始平移。如果我这样做,顶部的容器节点将拖动其他精灵。我希望所有精灵都连接起来并像连接一样移动。

如果我等到整个过程完成,就没有问题意味着平底锅正在移动整个容器节点。

我想知道是否有人可以指导我如何停止与应该包含在容器中的选定精灵的交互,直到该过程完成?

我试过'_background.userInteractionEnabled = NO;' 以及添加到节点本身但没有成功。我一直在尝试使用具有相同结果的 runBlock。

我需要得到 1.) 应禁止与 _selectedNodeArray 中的节点的所有交互 2.) 运行所有代码并创建容器 3.) 启用与容器/节点的交互。

这是代码:

0 投票
1 回答
1049 浏览

objective-c - 使 SKAction 像 animateWithDuration 一样执行

我目前正在将我的一个项目转换为SpriteKit,而我在转换animateWithDurationSKAction MoveByY: duration: First 时遇到了一些麻烦,因为它animateWithDuration为您提供了一种很好的加速和减速的美感,而SKAction. 烦人,但不会破坏游戏。其次是animateWithDuration立即计算其结束位置,而SKAction不断计算其位置。这对我来说是个问题,因为我有一个游戏板,其中一排spriteNodes正在向下移动。如果该行中间的一个节点被删除,我需要该节点下方的节点向上移动到现在的空缺位置。这意味着他们要去一个移动的目标,并使用SKAction他们超越了位置。我可以通过添加另一个来解决这个问题SKAction,但是我必须考虑到碎片以不同的速度下落,并且它开始快速变得混乱。我想知道是否有人有一个不涉及猜测的干净的解决方案?理想情况下,我会在animateWithDuration上运行spriteNode,但不幸的是,这不起作用。

这是我最初的动画代码:

这是我的新代码:

向 Can 道歉,因为我实际上已经在使用 moveTo 而不是 moveBy。变量correctPosition =fallingPiecesSpeed * 25。fallingPieceSpeed 是-.1,这是通过更新方法每0.01 秒移动每个下落部分的距离。我合理化了在 0.25 秒内制作动画所需的 25 个 -.1 运动增量,因此实施此操作以尝试解决我的问题。我相信使用 animateWithDuration,这些运动增量将被存储并在它下落时应用到它,这是我在 SKAction 中所缺少的。只要我将fallPieceSpeed 保持在-.1,这个解决方案似乎就可以正常工作,但是将其提高到-.3 会使我在碎片的最终位置上出现重大不一致。

希望这是有道理的。正如我所提到的,我希望用一种更清洁的方法绕过所有这些,但我可能不得不继续修改它才能找到我的解决方案:S