Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何为SKSpriteNode创建自定义属性?_Ios_Swift_Sprite Kit_Skspritenode - Fatal编程技术网

Ios 如何为SKSpriteNode创建自定义属性?

Ios 如何为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() } 然后,您可以

例如,我正在尝试制作一些SKSpriteNode,它们只能持续10秒。我想为节点创建一个名为“bornTime”的自定义属性,以便在update()if
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年以来的时间间隔,以秒表示,所以如果我没弄错的话,不需要转换。。