SpriteBuilder ゲーム制作 なんちゃらバードを試してみた

 

 

 iPhone・AndroidアプリをObjective-C言語で作る

SpriteBuilder ゲーム制作 なんちゃらバードを試してみた

SpriteBuilderのチュートリアルでサンプルゲームがありますがそれを元に学習をしてみた感想と制作時のトラブル解決を述べておきます。

学習に関しては、凄く丁寧に解説されているページがありますのでそれを元に制作しました。下記のリンク先を参照願います。

大まかな流れは


1.SpriteBuilderのプロジェクトを作成する。
2.新しいシーンを作成する。
3.アイテムの配置。
4.アイテムに動きを付ける。
5.シーンを挿入する。
6.Xcodeにコードを入力する。


公式サイトSpriteBuilder


クイックスタートサイト:

Learn | SpriteBuilder

公式サイトのLearnの項目にはクイックスタートということで「6分でゲーム作りを学べます!」と書いてありますがやはりもう少し時間が掛かりました。でも思ったよりは簡単に制作出来ますね。それもチュートリアルのお陰です。

 

2点ほど気が付いたことを上げておきます。

1.制作時、小まめにSave(保存)をされておいた方が良いです。Level.ccbのゲームのシーンを挿入する時に画面に画像が反映しなかったのでSaveしたら画面が表示されました。チュートリアルには記載されていないので注意してください。

 

2.ブロックを崩す大砲からバード(玉)が出てこなかったので原因を調べたら

タイムラインの順番が間違っていた(私が間違った 笑)のでバード(玉)が出てきませんでした。

CCPhysicsNode(パーツ)がCCButtonの下ただと玉が出てこないエラーになります。これが順番です。

 

CCNode

background

CCPhysicsNode

launcher

CCButton

 

後はスムーズに動作しています。これで大体の操作等のイメージは掴めますので試してみることをお薦めします。


Swift版のソースコードです。

参考にさせていただいたページに掲載されていました。


import UIKit

class Level: CCNode {
    var _launcher : CCNode!
    var _physicsNode : CCPhysicsNode!

    func launchBird(sender: AnyObject){
        // Calculate the rotation in radians
        var rotationRadians = CGFloat(CC_DEGREES_TO_RADIANS(_launcher.rotation))

        // Vector for the rotation

        var directionVector = ccp(sin(rotationRadians), cos(rotationRadians))
        var ballOffset = ccpMult(directionVector, 50)

        // Load a ball and set its initial position
        var ball = CCBReader.load("Bird")

        ball.position = ccpAdd(self._launcher.position, ballOffset)

        // Add the ball to physics node
        self._physicsNode.addChild(ball)

        // make an implulse and apply its
        var force = ccpMult(directionVector, 50000)
        ball.physicsBody.applyForce(force)
    }
}