sprite-kit - SpriteKit:SKAction.wait 从未被执行
问题描述
我有以下代码:
func laser() {
let scene: SKScene = SKScene(fileNamed: "Laser")!
let laser = scene.childNode(withName: "laser")
let waitAction: SKAction = SKAction.wait(forDuration: 0.0001)
let removeAction: SKAction = SKAction.removeFromParent()
laser?.run(SKAction.sequence([waitAction,removeAction]))
}
但似乎节点没有从内存中删除,因为不断增加。如果你知道为什么要么SKAction.wait
被执行,要么SKAction.removeFromParent()
没有被执行?
我会非常感谢你的帮助。
解决方案
let scene: SKScene = SKScene(fileNamed: "Laser")!
这意味着您正在加载一个新场景,而不是使用您所在的场景。
因此,您正在加载一个新场景,将动作放在该场景中的激光上,然后离开该功能。
一旦你离开这个函数,场景就被破坏了,你浪费了 CPU 周期。
不确定您从哪里执行此代码,但您需要到达实际使用的场景。
推荐阅读
- javascript - 将谷歌标签管理器的标签片段放在 Angular 中的什么位置?
- php - 4张表之间的关系
- javascript - 如何使我的“TextArea”内容可见 HTML/Javascript
- android - 通话记录器 ANE (AirNativeExtension)
- c - 使用环形缓冲区实现队列的代码
- apache-spark - 拒绝访问除 IAM 角色和 InstanceProfile 之外的所有内容的 S3 存储桶策略
- android - Android Room - 嵌套对象模型更改时如何迁移?
- java - 如何从 Android 中的特定国家/州/政治部门获取地址?
- excel - 使用excel公式按类别计算唯一值
- excel - 在 Excel 中从左侧的第一个“/”之后删除