1. mochizukikotaro

    No comment

    mochizukikotaro
Changes in body
Source | HTML | Preview
@@ -1,56 +1,54 @@
## あるシーンからResultSceneへの遷移をする場合。
```swift
let tr = SKTransition.revealWithDirection(SKTransitionDirection.Down, duration: 1)
let newScene = ResultScene(size: self.scene.size)
newScene.scaleMode = SKSceneScaleMode.AspectFill
self.scene.view.presentScene(newScene, transition: tr)
```
デフォルトでは、スケールモードがAspectFillになっているので、コレを設定しておいた方が遷移後のシーンのアスペクト比がずれないので良いと思います。
## ラベルをタップしたら遷移する場合。
TitleSceneからGameSceneへの移動。Startラベルをタップしたら遷移するように設定しています。
`if touchedNode.name {}`の部分などは冗長な気がしているのですが、よくわからず、今のところこのようにしています。もっと綺麗な方法がありそうです…。
```swift:TitleScene.swift
import SpriteKit
class TitleScene: SKScene {
override func didMoveToView(view: SKView) {
let startLabel = SKLabelNode(fontNamed: "Copperplate")
startLabel.text = "Start"
startLabel.fontSize = 50
startLabel.position = CGPoint(x: 512, y: 300)
startLabel.name = "Start"
self.addChild(startLabel)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
- for touch in touches {
- let location = touch.locationInNode(self)
- let touchedNode = self.nodeAtPoint(location)
+ let touch: AnyObject = touches.anyObject()!
+ let location = touch.locationInNode(self)
+ let touchedNode = self.nodeAtPoint(location)
- if touchedNode.name {
-
- if touchedNode.name == "Start" {
- let tr = SKTransition.revealWithDirection(SKTransitionDirection.Down, duration: 1)
- let newScene = GameScene(size: self.scene.size)
- newScene.scaleMode = SKSceneScaleMode.AspectFill
- self.scene.view.presentScene(newScene, transition: tr)
- }
-
+ if touchedNode.name {
+ if touchedNode.name == "Start" {
+ let tr = SKTransition.revealWithDirection(SKTransitionDirection.Down, duration: 1)
+ let newScene = GameScene(size: self.scene.size)
+ newScene.scaleMode = SKSceneScaleMode.AspectFill
+ self.scene.view.presentScene(newScene, transition: tr)
}
}
}
override func update(currentTime: CFTimeInterval) {}
}
```