【发布时间】:2017-06-16 19:50:30
【问题描述】:
我想在两个场景之间切换。 在每个场景上都有一个切换到另一个场景的按钮,我希望该按钮位于屏幕中间。 对于第一个场景,这是可行的(我将按钮放在 0,0 处)。但是对于第二个场景,0,0 的锚点在左下角而不是在中心.. 奇怪的是,当回到第一个场景时,按钮出现在按钮左侧,即使它之前是居中的!
- 场景 1:按钮居中
- 场景 2:按钮 @bottom left
- 场景 1:按钮 @bottom left
- 场景 2:按钮 @bottom left
- 场景 1:按钮 @bottom left
- 等等..
这里是代码(两个场景的代码相同,除了场景名称)
class LevelGeneral: SKScene {
var buttonplay = SKSpriteNode()
override func didMove(to view: SKView) {
buttonplay = SKSpriteNode(imageNamed: "button1")
buttonplay.size = CGSize(width: self.frame.width/2, height: self.frame.height/8)
buttonplay.position = CGPoint(x: 0, y: 0)
self.addChild(buttonplay)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
if buttonplay.contains(location) {
let nextScene = GameScene(size: self.size)
let reveal = SKTransition.fade(withDuration: 0.1)
self.view?.presentScene(nextScene,transition: reveal)
}
}
}
}
如果我将按钮位置更改为 screenwidth/2, screenheight/2(在两个场景中),按钮将首先出现在右上角,然后居中。 任何帮助将不胜感激
【问题讨论】:
-
第二个场景的代码是什么?
-
为什么不使用 buttonPlay.position 呢?
-
第二个场景的代码和第一个相同,但是“Level General”和“GameScene”切换了
标签: swift sprite-kit anchor point scene