gpt4 book ai didi

swift - 移动到另一个 .SKS 文件的正确方法

转载 作者:行者123 更新时间:2023-11-28 15:50:28 25 4
gpt4 key购买 nike

我有一个游戏,其中有两个场景:FarmScene 和 WoodScene。每个场景都有一个 .SKS 文件和一个 .swift 文件 - 一个用于设计,一个用于编码。我已经成功地从 FarmScene 转移到 WoodScene,就像这样:

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
let node : SKNode = self.atPoint(location)
if node.name == "WoodIcon" {
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "WoodScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill

// Present the scene
view.presentScene(scene)
}
}
}
}
}

在我以前的游戏中,我使用了 SKTransition 来移动到不同的场景,并且我可以用它来做一些很酷的过渡,比如翻转、淡入淡出和插入。

我想知道这是否是在 Xcode 中使用场景设计器时更改场景的“正确”方式?或者我可能遗漏了什么。

期待您的来信。

最佳答案

我不会用循环那样做,只是为了防止您可能多次运行该演示代码。也许用 guard 语句设置你的 touchesBegan 方法

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
// Guard to just use the first touch
guard let touch = touches.first else { return }
let location = touch.location(in: self)
let node : SKNode = self.atPoint(location)
if node.name == "WoodIcon" {
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "WoodScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill

// Present the scene
view.presentScene(scene)
}
}
}
}

此外,如果您想通过代码进行自定义转换,您可以这样做:

func customTransition() {

// Wait three seconds then present a custom scene transition
let wait = SKAction.wait(forDuration: 3.0)
let block = SKAction.run {

// Obviously use whatever scene you want, this is just a regular GameScene file with a size initializer
let newScene = SKScene(fileNamed: "fileName")!
newScene.scaleMode = .aspectFill
let transitionAction = SKTransition.flipHorizontal(withDuration: 0.5)
self.view?.presentScene(newScene, transition: transitionAction)

}
self.run(SKAction.sequence([wait, block]))

}

我不会说有对或错的方式,只是关于您希望过渡看起来有多花哨的偏好。

关于swift - 移动到另一个 .SKS 文件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com