Swift 创建单独类的精灵工具包

Swift 创建单独类的精灵工具包,swift,sprite-kit,Swift,Sprite Kit,尝试设计一个使用精灵工具包的游戏时,我发现为我的游戏对象之一创建一个单独的类会更容易,那就是船上的激光。在这个类中,我可能会有一些函数,比如更新、射击等。但是每当我创建另一个类时,我所创建的变量都不会被“声明”。这是我的密码 import UIKit import SpriteKit class laser: SKSpriteNode { let laser : SKSpriteNode = SKSpriteNode(imageNamed:"playerShip") laser.positi

尝试设计一个使用精灵工具包的游戏时,我发现为我的游戏对象之一创建一个单独的类会更容易,那就是船上的激光。在这个类中,我可能会有一些函数,比如更新、射击等。但是每当我创建另一个类时,我所创建的变量都不会被“声明”。这是我的密码

import UIKit
import SpriteKit

class laser: SKSpriteNode {

let laser : SKSpriteNode = SKSpriteNode(imageNamed:"playerShip")
laser.position = CGPoint(x: 100, y: 200)//This is where it says no declaration


}

这是因为您需要启动该类

在您的示例中,您需要执行以下操作,这将允许您实例化一个类似于以下内容的激光器
laser()

但你可能真的很想要这个,它允许你像这样实例化一个激光器
let aLaser=laser(“playerShip”)
。然后您可以像这样更改位置
alaser.position=CGPoint(x:100,y:200)

此方法允许您轻松更改不同激光器的精灵和位置。除非你的游戏只有一个激光

class laser: SKSpriteNode {

    init(_ imageName: String) {
        let texture: SKTexture = SKTexture(imageNamed: imageName)

        super.init(texture: texture, color: .clear, size: texture.size())
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}

这是因为您需要初始化该类

在您的示例中,您需要执行以下操作,这将允许您实例化一个类似于以下内容的激光器
laser()

但你可能真的很想要这个,它允许你像这样实例化一个激光器
let aLaser=laser(“playerShip”)
。然后您可以像这样更改位置
alaser.position=CGPoint(x:100,y:200)

此方法允许您轻松更改不同激光器的精灵和位置。除非你的游戏只有一个激光

class laser: SKSpriteNode {

    init(_ imageName: String) {
        let texture: SKTexture = SKTexture(imageNamed: imageName)

        super.init(texture: texture, color: .clear, size: texture.size())
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}