在我的MenuScene中有一个播放按钮,如果我触摸它,它会使用以下代码更改为GameScene:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
if atPoint(location).name == "playButton" {
let playScene = GameScene(size: self.size)
let playSceneTransition = SKTransition.fade(withDuration: 0.5)
playScene.scaleMode = SKSceneScaleMode.aspectFill
self.view?.presentScene(playScene, transition: playSceneTransition)
}
}但是GameScene看起来像是在左下角,并且只显示场景的右上角。如果我在开始游戏时更改GameViewCotroller以显示GameScene而不是MenuScene,它看起来完全没问题。为什么会这样呢?转到GameScene的代码是否有问题?
发布于 2017-10-25 03:26:30
这里的问题是您正在通过SKS文件加载您的MenuScene。默认情况下,这会将锚点设置为0.5、0.5。
然后,您将使用大小初始化器转换到游戏场景,而不是使用GameScene(size: self.size)文件,该文件的锚点将为0,0或0.5,这取决于您的用户加载的iOS版本。
我建议避免使用GameScene(size: self.size),而使用GameScene(fileNamed:"GameScene")来保持一致性。
https://stackoverflow.com/questions/42045881
复制相似问题