pipeDistance);}@end[/code]Obstacle.hにもメソッドの宣言をします。(void)setupRandomPosition;@end[/code]最後にMainScene.mを修正しましょう。障害物を生成する際に、位置がランダムになるよう修正します。クラスをインポートします。障害物クラスをインポート[/code]続いてメソッドに書き加えましょう。addObject:obstacle];}[/code]これで障害物の位置がランダムになりました。表示順を変更する障害物が地面の前に出てしまっているので、コードを加えて表示順を調整します。定数の宣言の下あたりに、以下のコードを加えます。{DrawingOrderPipes,DrawingOrderGround,DrawingOrdeHero};[/code]さらに、didLoadFromCCBにZ軸の表示順を追記します。タッチ操作可能にする。DrawingOrdeHero;}[/code]最後にspawnNewobstacleを修正します。addObject:obstacle];}[/code]以上で表示順の設定が終わりました。次回は当たり判定とゲームオーバー、リスタートの設定を行います。cocos2d-iPhoneとSpriteBuilderでゲームを1週間で作ろういままで作りこんできた主人公をついに飛ばします。タッチ操作に合わせて、ぴょこぴょこ飛びます。飛ぶのに合わせて、キャラクターが上下に傾きます。今回でかなりゲームっぽくなりますよ。前回までソフトをインストール。主人公をつくる物理演算を導入する主人公と背景を動かす重力を変更まずは重力を-100から-700へ変更します。保存してPublishしたらXcodeに移ります。TRUE;”を追加して、タッチイベントを取るようにします。タッチ操作可能にする。TRUE;}[/code]つぎに、タッチした時の挙動を追加します。以下のコードを追加し、touchBegan:withEvent:をオーバーライドします。400.f)];}[/code]これでタッチするとピョンピョン飛ぶようになりました。速度上限を設定するビルドしてみるとわかると思いますが、素早く画面をタッチすると、主人公が画面外へ大きく飛び出てしまいます。ならないために、微調整をする必要があります。物理演算を使用する際はこのような微調整がとても大事です。y軸の速度が200.fを超えた場合は200.fにする。yVelocity);}[/code]clampとは値を一定の範囲内に収める操作を言います。今回の場合は、上限を200.fと定めて、それ以上になってしまった場合は200.fとするようにして、_hero.physicsBody.velocityのyに代入しています。xは手動で設定しているので0で良いです。主人公を回転させるいまは主人公が水平のまま上昇したり下降したりしていますが、躍動感を加えるために主人公を回転させてみましょう。_sinceTouch)を作ります。最後にタッチしてからどれだけ経過したか}[/code]続いて、タッチした時のメソッドに追記します。0.f;}[/code]AngularImpulseの値を大きくすると、角度の変化が素早くなります。最後にupdateメソッドを更新します。角度の範囲を指定し、タッチしていない時は下向きに回転するようにします。回転が可能かチェック。経過時間が0.5秒を超えると、急速に下に向くようにする。applyAngularImpulse:-40000.f*delta];}}[/code]最初に_sinceTouchに時間を加えて、タッチしてからの経過時間を更新します。次に、回転が可能かどうかをチェックします。あとで設定をしますが、死んだ時は回転が不可能なため。回転可能なとき、-30度から90度の範囲で回転できます。最後に、経過時間が0.5秒以上だった場合は、急速に下向きに回転するようにします。これで回転の設定は終わりました。ビルドしてみましょう。ゲームっぽくなりました!次回は障害物を設置します。cocos2d-iPhoneとSpriteBuilderでゲームを1週間で作ろう今回は、キャラクターの動きに合わせて背景を動かします。これまでSpriteBuilderで配置した主人公や背景を、ついに動かします。今回はcocos2dのコードも書きます。いっても普通に開発する場合と比べるとコードを書く量はかなり少ないですが。地面の無限ループなども実装します。前回までソフトをインストール。主人公をつくる物理演算を導入する主人公を動かすSpriteBuilderで設定したオブジェクトとXcodeで書くコードをつなげます。主人公のノードを選択し、右カラムの左から2番目のタブを選択肢ます。この画面でXcode上のコードと接続します。var」を選択して、右には「_hero」と記述します。保存をしてPublishボタン(左上のボタン)を押した後、Xcodeに移ります。_hero.position.y);}@end[/code]これで、主人公が動くようになります。ビルドしてみましょう。起動と同時に主人公が右に飛んでいきます。続いて、主人公の動きに合わせてカメラが動くように設定します。cocos2dにはカメラという機能はないので、主人公に合わせて地面などが動くように設定します。SpriteBuilderのMainScene.ccbを開き、CCPhysicsNodeを選択します。varを選択し、_physicsNodeと記述します。保存してPublishしたらSpriteBuilder側はこれで完了。続いてはXcodeにコードを書いていきます。@implementationの部分に以下のように追記します。これでSpriteBuilderの_physicsNodeとXcode側の接続が完了しました。SpriteBuilderと接続する全画面の物理ノード}[/code]続いて、画面と主人公の位置が連動するようにコードを書きます。_physicsNode.position.y);}@end[/code]これで画面が主人公を追いかけるようになりました。地面をループさせていないので、しばらくすると奈落へ落ちていってしまいますが。地面をループさせる主人公が地獄に落ちないよう、地面をループさせます。スプライトビルダーの表示設定を変更して、画面外も見られるようにしましょう。Noneと選択し、画面境界の表示を消します。これで画面外にスプライトを設置できるようになりました。続いて、2番目の地面を画面上に設置します。ArtPackからground.pngをドラッグアンドドロップし、その後画像の位置を変更します。12)に、アンカーポイントのX座標を0にします。このときCCPhysicsNodeの子ノードに入っていない場合は、下画面でドラッグアンドドロップして、groundがCCPhysicsNodeの中に入っているようにしましょう。続いて、物理演算を可能にします。physicsにチェックを入れ、Staticを選択します。このあたりは1つ目の地面を設定した時と同じですね。次に、ループを実装するため、connectionを設定する必要があります。最初に設定したground.pngのスプライトに「_ground1」、さきほど設定した方に「_ground2」と設定します。これでSpriteBuilderは完了。保存してPublishしたら、Xcode側に移ります。ひとつの地面が画面の左端から完全に外れたら、それを右に移動させる。ground.position.y);}}}@end[/code]これで地面が永遠につづくようになりました。次回は画面をタッチして主人公を飛ばします。cocos2d-iPhoneとSpriteBuilderでゲームを1週間で作ろう今回は物理演算を実装します。v3では物理演算がデフォルトで入るようになりました。SpriteBuilderを使うと、ワンクリックで物理演算を導入できるようになります。前回までソフトをインストール。主人公をつくる画面全体にCCPhysicsNodeを配置するまずは画面全体に物理演算ノードを設置します。MainSceneを開き左カラムの立方体のタブを開きます。そこからPhysicsNodeという項目を画面下の「CCNode」の上にドラッグアンドドロップします。続いて、画面全体をカバーするようサイズを変更します。幅と高さを100%に変更します。地面に物理演算を導入する地面のスプライトを選択し、右カラムの物理演算のタブ(四角が跳ねてるアイコン)を選択します。physics」を選択することで、対象ノードが物理演算可能となります。ラジオボタンはStaticを選択します。続いて、groundをCCPhysicsNodeの子ノードにします。groundをCCPhysicsNodeの上にドラッグアンドドロップすることで、子ノードにすることができます。最後に、CCPhysicsNodeの表示順を変更します。(すでにCCPhysicsNodeが最下部にある場合は変更する必要はないです。)主人公を設置するついに前回作った主人公を設置します。Hero.ccbをMainSceneの画面上にドラッグ&ドロップします。(ドラッグアンドドロップの前に、Hero.ccbを保存しておきましょう。)つぎに、追加した主人公のノードをCCPhysicsNodeの子ノードにします。続いて、対象物の物理演算にチェックを入れます。地面とは異なり、Dynamicで良いです。最後に茂みを設置しましょう。ドラッグアンドドロップをして。続いて、位置を修正します。(左下、160,106)さらに、表示順を変更します。CCPhysicsNodeの上になるように。それではビルドしてみましょう!左上のPublishボタンを押します。今度はXcodeからビルドしてみましょう。SpriteBuilderのプロジェクトが入っているフォルダを開き、プロジェクトファイルを開きます。シュミレーターではこんなかんじで表示されるはず。cocos2d-iPhoneとSpriteBuilderでゲームを1週間で作ろう前回までで背景の設置が終わりました。今回は主人公を設置します。SpriteBuilderを使えばアニメーションを簡単に作れます。普通の開発ではコードを書いてコマ送りを実装ますが、SpriteBuilderでは、動作を見ながらアニメーションを作ることができます。前回までソフトをインストール。主人公用のファイルを新規作成Heroという名前で、「Sprite」を選択してファイルを作成します。作成したファイルに画像を設定します。続いて、時間間隔を設定します。10秒を1秒に変更します。Frameを追加します。タイムラインを動かしながら、SpriteFrameを6つ追加します。Frameを一つおきにfly2.pngに変更し、羽がパタパタするアニメーションを作成します。最後に動画がループするように設定します。これで主人公のアニメーションが作成できました。SpriteBuilderでFlappyBirdっぽいゲームを作ります。いうか、こちらの記事の和訳+補足になります。https://www.makegameswith.us/gamernews/369/build-your-own-flappy-bird-with-spritebuilder-and↑こういったアプリが作れます。インストールまず以下の2つをDLし、インストールしましょう。3.0SpriteBulider両方共インストールが完了したら早速始めちゃいましょう。参照元は「チュートリアルはやっておいてね」と書いていたのですが、無視します。プロジェクトを作ろうSpriteBuliderを起動して、プロジェクトを作ります。「FlappyFly」という名前をつけて、デスクトップに保存。(保存先はどこでも良いです。)するとプロジェクトが作成されて、最初の画面が表示されます。デフォルトの画面を消すSpriteBuilderという文字と、その後ろの青い背景を消します。これで何もなくなりました。ちなみにオブジェクトを選択してdeleteボタン押しても消せます。画面を縦にする横画面だと具合がわるいので、縦にします。Portraitにして「Done」を押します。これで画面が縦になりました。続いてはSpriteBuilderで背景画像を設置します。画像をプロジェクトに追加ダウンロードして解凍したフォルダを、プロジェクトに追加します。ドラッグアンドドロップで追加できます。追加した画像から、背景画像(background.png)を設置します。左側の追加したフォルダを開き、ドラッグアンドドロップで画面上に画像を設置します。設置した画像を選択すると、右側のバーに位置などの設定画面が出ます。AnchorPointを変更します。Pointは、Xを「0.0」に、Yを「1.0」に設定します。これで位置を整列できました。Top-Left、つまり左上を基準として設定したわけですが、こうすることで、iPhone4でもiPhone5でも対応できるようになります。iPhone4での見え方を確認したい場合はこちらの設定から確認できます。背景画像と同様に、地面も設置します。ground.pngをドラッグアンドドロップします。その後、先程と同様に位置指定をします。PositionはBottom-leftでXが0.0、Yが12.0。pointはXが0.00、Yが0.50。同様に、雲も設置してみます。PositionはTop-leftでXが187.0、Yが134.0。保存というわけで今日はここまで。v3)cocos2d-xばかりで、cocos2d-iPhoneについてどこも書いてないので、メモしておきます。https://www.makegameswith.us/gamernews/359/cocos2d-30-a-brief-transition-guideCCLayerがなくなったタッチイベントのCCMenueがなくなって、CCLayoutを使うおっと、こちらに日本語で詳しく書かれていました。実機でテストしようとしたら以下の様なエラーが出てしまいました。asmそんなときの対処法。__ARM_NEON__↑このように書いてある箇所を↓のように変更します。__ARM_NEON_7mat4.cとneon_matrix_impl.cで1箇所ずつ書かれている箇所があるので、両方修正します。cocos2dデバッグ用にスロー再生したいとき。cocos2dのテンプレートで作成したプロジェクトのAppDelegate.mのapplication:didFinishLaunchingWithOptions:の最後の方に以下の一文を入れます。YES;}[/objc]これで通常の5分の1のスロースピードで動きます。timeScaleを2とかにすると、2倍の早さで動きます。UltimatelySocial。