在 SpriteKit 中使用另一个场景的布尔值 - Swift
Use a boolean value from another scene in SpriteKit - Swift
我正在尝试在我的 GameViewController.swift 文件中使用我的 GameScene.swift 文件中的变量来适当地安排我的插页式广告的时间。这是一个布尔值,用于确定我的玩家是否死亡。
var died = Bool()
这就是我在 GameScene 中创建变量所做的全部工作。
当我的 GameScene 中 died == true 时,我想将其发送到我的 GameViewController,然后显示插页式广告。我真的只需要知道如何在场景之间传递布尔值。在此先感谢您的帮助。
您的 GameScene 应该有一个引用对象作为委托(例如符合 GameSceneDelegate 协议),它实际上指向 GameViewController 对象。然后当 died 变为 true 时,通过委托方法将此事件通知您的委托对象(GameViewController 对象),并通过在您的 GameViewController class.
中遵守上述协议来实现该方法
您可以按照以下步骤操作。
在您的 GameScene 中执行此操作:
protocol PlayerDeadDelegate {
func didPlayerDeath(player:SKSpriteNode)
}
class GameScene: SKScene {
var playerDeadDelegate:PlayerDeadDelegate?
...
// during your game flow the player dead and you do:
playerDeadDelegate.didPlayerDeath(player)
...
}
在 GameViewController
你做的:
class GameViewController: UIViewController,PlayerDeadDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
...
scene.playerDeadDelegate = self
}
}
func didPlayerDeath(player:SKSpriteNode) {
print("GameViewController: the player is dead now!!!")
// do whatever you want with the property player..
}
}
我正在尝试在我的 GameViewController.swift 文件中使用我的 GameScene.swift 文件中的变量来适当地安排我的插页式广告的时间。这是一个布尔值,用于确定我的玩家是否死亡。
var died = Bool()
这就是我在 GameScene 中创建变量所做的全部工作。
当我的 GameScene 中 died == true 时,我想将其发送到我的 GameViewController,然后显示插页式广告。我真的只需要知道如何在场景之间传递布尔值。在此先感谢您的帮助。
您的 GameScene 应该有一个引用对象作为委托(例如符合 GameSceneDelegate 协议),它实际上指向 GameViewController 对象。然后当 died 变为 true 时,通过委托方法将此事件通知您的委托对象(GameViewController 对象),并通过在您的 GameViewController class.
中遵守上述协议来实现该方法您可以按照以下步骤操作。
在您的 GameScene 中执行此操作:
protocol PlayerDeadDelegate {
func didPlayerDeath(player:SKSpriteNode)
}
class GameScene: SKScene {
var playerDeadDelegate:PlayerDeadDelegate?
...
// during your game flow the player dead and you do:
playerDeadDelegate.didPlayerDeath(player)
...
}
在 GameViewController
你做的:
class GameViewController: UIViewController,PlayerDeadDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
...
scene.playerDeadDelegate = self
}
}
func didPlayerDeath(player:SKSpriteNode) {
print("GameViewController: the player is dead now!!!")
// do whatever you want with the property player..
}
}