Swift, SpriteKitでOSX向けゲームを作っています。
シーン遷移の実装をしたいのですが、ビルドしてみるとうまく遷移してくれません。
プロジェクトの内容はXcode7のGameテンプレートにTestScene.swiftを追加し、GameSceneにコードを追加したものとなっています。
以下が追加したファイルとコードです。
Swift
1// GameScene.swift 2import SpriteKit 3 4class GameScene: SKScene { 5 override func didMoveToView(view: SKView) { 6 /* Setup your scene here */ 7 let myLabel = SKLabelNode(fontNamed:"Chalkduster") 8 myLabel.text = "Hello, World!"; 9 myLabel.fontSize = 45; 10 myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)); 11 12 self.addChild(myLabel) 13 } 14 15 override func mouseDown(theEvent: NSEvent) { 16 /* Called when a mouse click occurs */ 17 18 let location = theEvent.locationInNode(self) 19 20 let sprite = SKSpriteNode(imageNamed:"Spaceship") 21 sprite.position = location; 22 sprite.setScale(0.5) 23 24 let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1) 25 sprite.runAction(SKAction.repeatActionForever(action)) 26 27 self.addChild(sprite) 28 29 /* 追加コード */ 30 // シーンに移動 31 if let scene = TestScene(fileNamed: "TestScene") { 32 scene.scaleMode = SKSceneScaleMode.AspectFill 33 let transition = SKTransition.fadeWithDuration(1.0) 34 self.view?.presentScene(scene, transition: transition) 35 } else { 36 print("scene is nil") 37 } 38 } 39 40 override func update(currentTime: CFTimeInterval) { 41 /* Called before each frame is rendered */ 42 } 43}
Swift
1// TestScene.swift 2import SpriteKit 3 4class TestScene: SKScene { 5 override func didMoveToView(view: SKView) { 6 /* Setup your scene here */ 7 let myLabel = SKLabelNode(fontNamed: "Helvetica") 8 myLabel.text = "test scene" 9 myLabel.fontSize = 30 10 myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)); 11 12 self.addChild(myLabel) 13 } 14}
ビルドすると、マウスで画面内をクリックするたびにscene is nil
が出力されます。おそらくTestScene(fileNamed: "TestScene")
で追加クラスが正常にインスタンス化されていないのだと思いますが、その原因がわかりません。
考えられる理由があれば意見していただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/09/18 14:38