ios - 将相同类型的 SKAction 添加到 sprite 会覆盖之前的 Action 吗?

标签 ios sprite-kit skaction

我有加速度计更新,我正在采样以获得垂直和水平速率。我每帧都执行此操作。然后我创建一个向量并将其传递给 moveBy SKAction。但是我不确定这是否会使系统过载,或者每次我添加新的 SKAction 时它都会停止前一个,丢弃它并运行新的。

最佳答案

向节点添加 SKAction 不会删除应用到它的任何先前操作。它们将同时执行。

如果您想在应用新节点之前删除节点上的任何先前操作,请使用以下代码。

SKAction *newAction = [SKAction waitForDuration:1.0]; //Sample new action

[node removeAllActions];
[node runAction: newAction];

但是,如果您想删除特定操作(而不是所有操作):

//In your accelerometer update method
SKAction *newAction = [SKAction waitForDuration:1.0]; //Sample new action

[node removeActionForKey:@"waitAction"];
[node runAction: newAction withKey:@"waitAction"];

如果您想根据加速度计更新移动节点,我还建议使用物理环境。这可以通过将 SKPhysicsBody 附加到节点并应用基于加速度计状态计算的矢量来完成。看起来会更自然,处理碰撞和接触也会更简单。

关于ios - 将相同类型的 SKAction 添加到 sprite 会覆盖之前的 Action 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28686077/

相关文章:

swift - 任何计算 SKEmitterNode 发射的粒子数量以启用坐标跟踪的方法

ios - XCode 存档 : "No code signing identities found: No valid signing identities (i.e. certificate and private key pair) were found."

ios - 使 SKLabelNode 可编辑

swift - 在靠近特定点时降低节点速度

ios - SpriteKit : How can I get the pixel color from a point in SKSpriteNode?

ios - 在 SKScene、iOS、Swift 中获取/设置像素颜色

swift - 如何使 'n' 数量的 spriteNodes 出现在屏幕大小内并在屏幕内移动?

ios - 将数据从 ViewController 传递到 ChildContainerContainer Swift

php - 从我的 iOS 应用测试多部分表单 HTTP POST

javascript - iOS 14 API WKScriptMessageHandlerWithReply 如何与 iOS 中的 JavaScript 通信?