任何人都可以解释如何将节点添加到gameScene中。
我将我的Boss类继承了,但我不知道如何在GameScene上显示我的Boss1
class Boss: GameScene {
var gameScene : GameScene!
var Boss1 = SKSpriteNode(imageNamed: "boss1")
override func didMove(to view: SKView) {
Boss1.position = CGPoint(x: size.width * 0.1, y: size.height * 0.5)
Boss1.zPosition = 2
self.gameScene.addChild(Boss1)
}
}
即时通讯使用swift 4和xcode 9
答案 0 :(得分:0)
对于像这样的实例,您通常不会对场景进行子类化。更有可能的意思是让boss成为if (shapes[i].getText().asString().indexOf("needle") !== -1) {
// do something
}
的子类并将其添加到场景中。虽然可能有很多方法可以将其子类化,但这只是一种方法。
另外值得注意的是,通常不能接受的做法是将变量名称大写,类yes,变量号。
SKSpriteNode
......同时回到GameScene
class Boss: SKSpriteNode {
init() {
let texture = SKTetxure(imageNamed: "boss1")
super.init(texture: texture , color: .clear, size: texture.size())
zPosition = 2
//any other setup such as zRotation coloring, additional layers, health etc.
}
}
在GameScene中,您可以创建新类的实例并对其进行定位并将其添加到GameScene中。
修改
init函数在swift中有一个捷径。
class GameScene: SKScene {
let boss1: Boss!
override func didMove(to view: SKView) {
boss1 = Boss()
boss1.position = CGPoint(x: size.width * 0.1, y: size.height * 0.5)
self.gameScene.addChild(boss1)
}
}
与
相同Boss()
您还可以向init添加自定义参数,以进一步说明或向您的课程添加更多功能。例如......
Boss.init()