在我的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吗?
答案 0 :(得分:0)
这里的问题是您是通过SKS文件加载MenuScene。默认情况下,这会将您的锚点设置为0.5,0.5。
然后您使用尺寸初始值设定项而不是SKS文件转换到游戏场景GameScene(size: self.size)
,其定位点为0,0或0.5,0.5,具体取决于您的iOS版本用户正在加载。
我建议您避免使用GameScene(size: self.size)
并使用GameScene(fileNamed:"GameScene")
来保持自己的一致性。