嗨,我是Swift和SpriteKit的新手,无论如何,我都想为一个项目开发游戏。我将一个按钮拖到Main.storyboard上,并将其代码连接到GameViewController.swift
我的按钮代码和当前尝试在下面,
@IBAction func TroopB1(_ sender: AnyObject) {
let newGS = GameScene()
newGS.spawnEnemy()
}
现在我要做的是在GameScene.swift中调用一个函数,该函数创建一个SKSpriteNode(在我的Player类中定义)并将其添加到Game中。
GameScene.swift中的功能代码如下,
func spawnTroop() {
let newTroop = Player(imageNamed: "Troop1")
newTroop.loadtroop()
self.addChild(newTroop)
}
类播放器定义为SKSpritNode,loadtroop只是定义一些属性和SKSpritenodes物理主体。
谁能帮助我告诉我如何从GameViewController.swift中的按钮功能-TroopB1-调用GameScene中的spawnTroop()函数,并在我的游戏中创建一个新的SKSpritenode,因为到目前为止所有尝试均未成功?
答案 0 :(得分:0)
创建了这样的新场景后,您致电spawnEnemy()
:
let newGS = GameScene()
您创建的新场景与SKView
中显示的场景不同。您在此场景中生成了部队,而不是所显示的场景。
访问呈现的场景的一种方法是:
((self.view as? SKView)?.scene as? GameScene).spawnTroop()
我们首先以VC SKView
访问VC正在控制的视图,然后以GameScene
访问视图中呈现的场景,然后调用该方法。