Ios 如何为SKSpriteNode创建自定义属性?
例如,我正在尝试制作一些SKSpriteNode,它们只能持续10秒。我想为节点创建一个名为“bornTime”的自定义属性,以便在update()ifIos 如何为SKSpriteNode创建自定义属性?,ios,swift,sprite-kit,skspritenode,Ios,Swift,Sprite Kit,Skspritenode,例如,我正在尝试制作一些SKSpriteNode,它们只能持续10秒。我想为节点创建一个名为“bornTime”的自定义属性,以便在update()ifcurrentTime-bornTime>10中删除节点 您需要将SKSpriteNode子类化为自定义对象。您可以在其中设置所需的属性: import UIKit import SpriteKit class mySpriteNode: SKSpriteNode { let bornTime = NSDate() } 然后,您可以
currentTime-bornTime>10
中删除节点 您需要将SKSpriteNode子类化为自定义对象。您可以在其中设置所需的属性:
import UIKit
import SpriteKit
class mySpriteNode: SKSpriteNode {
let bornTime = NSDate()
}
然后,您可以将该日期与当前日期进行比较,并查看差异。另一种方法是向节点添加一个带有延迟的SKAction,该操作会将自身从父节点中移除:
mynode.run(SKAction.sequence([
SKAction.wait(forDuration: 10),
SKAction.run {
mynode.removeFromParent()
}
]))
此方法的优点是,您不必检查甚至不必关心时间您可以为userData分配nsmutabledictionary来存储任何自定义属性。这样,您就不需要将node@LearnCocos2D谢谢这是一个很好的解决方案!谢谢我想为斯普林泰诺做点什么。您的解决方案更好、更简单!我会将NSDate更改为CACurrentMediaTime。currentTime是一个CFTimeInterval,您无法轻松地将其与NSDate进行比较(据我所知)。。更易于使用的CACurrentMediaTime也是CFTimeInterval@hamobi我同意。我在寻找绝对时间法,但我记不清了。还有1970年以来的时间间隔,以秒表示,所以如果我没弄错的话,不需要转换。。