3Dゲームを作れるフレームワーク、SceneKitを試してみました。
iPhoneの2Dゲーム用フレームワークのSpriteKitに近いものだと思えば良さそうです。
使い方
まずはプロジェクトの新規作成でGameを選びます。
プルダウンでSceneKitを選択します。
作成したプロジェクトを実行すると、このような3Dの飛行機が動きます。
飛行機の素材は.scnという拡張子のファイルで作られています。
構成としては、SpriteKitと同様に親ビューがあってそこにSceneの配置、その下にNodeを設置していくようです。
let scene = SCNScene(named: "art.scnassets/ship.scn")! let scnView = self.view as! SCNView scnView.scene = scene
2Dゲームと違ってカメラやライトがあります。
Positionにzがあるのも特徴的ですね。
let cameraNode = SCNNode() cameraNode.camera = SCNCamera() scene.rootNode.addChildNode(cameraNode) let lightNode = SCNNode() lightNode.light = SCNLight() lightNode.light!.type = SCNLightTypeOmni lightNode.position = SCNVector3(x: 0, y: 10, z: 10) scene.rootNode.addChildNode(lightNode)
回転させる処理は以下の通りです。
SCNActionというクラスを使って実施します。
let ship = scene.rootNode.childNodeWithName("ship", recursively: true)! ship.runAction(SCNAction.repeatActionForever(SCNAction.rotateByX(0, y: 2, z: 0, duration: 1)))