Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
Swift 如何子类化SKnode以创建具有多个独立';车道';?_Swift_Xcode_Sprite Kit - Fatal编程技术网

Swift 如何子类化SKnode以创建具有多个独立';车道';?

Swift 如何子类化SKnode以创建具有多个独立';车道';?,swift,xcode,sprite-kit,Swift,Xcode,Sprite Kit,我正在建造,每条车道都应该有自己相同的坐标系统和逻辑 将SKNode子类化并将其添加到SKScene的正确方法是什么 车道间距和高度将根据屏幕尺寸调整, 这完全取决于四条不同车道之间的差异程度。当我说差异时,我的意思是他们需要不同的存储属性吗?每条车道将有多少独特的方法。无论哪种方法,创建一个基类lane继承自SKNode,brain storm,并考虑所有的属性和方法,这些属性和方法将在所有lane中通用,并将它们添加到这个类中。完成后,您可能会发现不需要对该类型进行子类化。无论哪种方式,您都

我正在建造,每条车道都应该有自己相同的坐标系统和逻辑

将SKNode子类化并将其添加到SKScene的正确方法是什么


车道间距和高度将根据屏幕尺寸调整, 这完全取决于四条不同车道之间的差异程度。当我说差异时,我的意思是他们需要不同的存储属性吗?每条车道将有多少独特的方法。无论哪种方法,创建一个基类lane继承自SKNode,brain storm,并考虑所有的属性和方法,这些属性和方法将在所有lane中通用,并将它们添加到这个类中。完成后,您可能会发现不需要对该类型进行子类化。无论哪种方式,您都可以在以后的时间点继承此类型,因为您的范围会扩展,并且您会发现您已经定义了各个车道的行为

一旦拥有了基类类型,就可以将该类的4个实例添加到场景中

或者,如果您选择,您可以添加2个基类类型,并说是从基类继承的2个类型

好的,那么您创建一个新的.swift(我假设您使用swift)删除其中任何不是注释的内容,然后为基类编写

import SpriteKit

class ______: SKNode  {

    init() {
        super.init()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    public func update() {        

    }

    public func updateDidEnd() {

    }

    deinit {
        print("DEBUG: ________: deinit")
    }

}
这是我在对SKNode进行分类时使用的最接近锅炉板的地方。在它给出的地方,只需添加类的名称

当您想从这个类中创建子类时,只需执行相同的操作,但将第二行的SKNode替换为您指定给基类的任何名称。你可以随心所欲地继续这样做

请特别关注封装,以确定首先要在其中放入什么。当子类化时,考虑多态性需要一点时间来适应,但一旦单击它,编写代码就会更快


您有很多选择

我不知道的部分是如何在体系结构上将这些子类放在单独的文件中,然后将它们作为属性添加到我的场景文件中