夏までにiPhone アプリつくってみっか!

趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。

cocos2d

【cocos2d】プログラム実行中にzオーダーを変更して表示順序を変える

cocos2dでaddChildするときにzパラメーターを指定するとスプライトの表示順序を思い通りにコントロールする事ができます。 zの値が大きいほど上に表示され、重なったときにz値が小さいスプライトを覆い隠します。 BeeClusterの6面の蜂の巣のシーンではzパラ…

【cocos2d】addChildのzパラメーターでスプライトを順序よく重ね合わせる

BeeClusterの最終面では蜂の巣から幼虫が飛び出してくるという演出を考えています。 蜂の巣を斜め上から見下ろしているようなアングルになります。 幼虫が巣の各部屋の中に入っているように見せるには、幼虫は上の壁と下の壁の間に重ね合わせる必要がありま…

【BeeCluster】ステージ5ボス オオスズメバチ

これまでのステージにも登場してきましたスズメバチが5面のボスとなります。 グルグル回りながら四方八方から弾を撃ってきますので避けるのが大変です。 やっつけるコツは穴から浮上してきて回り出すところを狙いできるだけ回り出す前に撃破する事です。次か…

【cocos2d】CCParallaxNodeでサクッと多重スクロール

こちらのポストではCCParallaxNodeを使わずに多重スクロールする方法を解説しました。 今回はCCParallaxNodeを使って手軽に多重スクロールを実装したいと思います。 せっかくなので背景1枚+前景4枚の5重スクロールとしました。 CCParallaxNodeによるスクロ…

【cocos2d】クマの目玉を動かしビームを発射

今回はBeeCluster 4面のボスとして登場するクマの目から発射する赤いビーム光線についての解説です。 今回はこのゲームで初めてCCTint系のアクションを使ってみました。 まずは動画でクマの動きをお確かめください。 クマの目玉がハチを追って動いているのが…

【cocos2d】ダミーのスプライトを使った当たり判定

BeeCluster 4面のボスのクマ。 時折腕を振り回して攻撃してきます。 今回は、クマの腕に使用した、ダミースプライトによる当たり判定について書きたいとおもいます。 BeeClusterの当り判定は全てオブジェクト同士の距離を計算して行っています。 つまり、オ…

【BeeCluster】4面が完成!

BeeCluster 4面の敵キャラの配置が完了しました。 高速スクロール部分があまりにも高難易度で何度トライしてもボスまでたどり着けなかったので木の配置を見直し、行き止まりになっている部分を修正しました。 適度にスリリングであまりイライラしない難易度…

【cocos2d】CCEaseBackInアクションでクマをズシンズシンと歩かせろ!

BeeClusterではSteering BehaviorsのArrivalという方法でキャラクターの動きを滑らかにしています。詳しくはこれらのポストをご覧ください。 空中を飛ぶ虫は滑らか動きが必要なのですが、地上を歩く動物はどうでしょうか? あまり滑らかに動くと歩いている感…

【cocos2d】CCAction実行中の時間の経過にご注意!

cocos2dのCCAction実行中は時間が経過し、プログラムの他の部分が実行されるという事に注意する必要があります。 これに気づかずに私は昨日のポストのプログラムにバグを仕込んでしまいました。例えば、このlandメソッドのCCScaleToアクションとCCCallBlock…

【cocos2d】バッタがジャンプする動きを実装。しかし見えない・・・

今回はBeeClusterの4面にバッタを出してみました。 しかしイマイチな結果に・・・まずは動画をご覧ください。 草むらから弾が飛び出してきて、そのあと虫が飛び出してくる様子がわかりますか? 草むらにはバッタが潜んでいるのですが、そのあまりの保護色っ…

【BeeCluster】高速スクロール面に障害物を並べるのは結構たいへん

BeeClusterの4面を制作中です。 高速スクロールする部分に、当たったら即死の木々を並べ迷路を作ろうと思います。 木々はプログラム上は通常の敵と同じように生成します。 ただし、自分はダメージを受けない属性にしています。 動画をご覧ください。0:55あた…

【cocos2d】スクロール速度を変化させてみた

BeeClusterの4面には高速スクロール部分を作ろうと考えています。 いくつかの方法を考えてみましたが、結局素直にCCMoveByアクションをずらずらと並べるというシンプルな結論に達しました。 まずは動画をご覧ください、ステージ開始後40秒からじわじわとスピ…

【BeeCluster】3面を最後まで実装しました

6月中にAppleの審査へ提出する事を目指して急ピッチで製作中のBeeClusterの3面が完成しました。 6月最終週は本業の都合上こちらの作業ができない事が決定していますので、実質あと1ヶ月で完成させる必要があります。 今日はようやく3面が完成しました。 こち…

【cocos2d】3面ボスのカブトムシを実装してみた

BeeClusterに3面のボスを実装しました。 最強の昆虫、カブトムシです。 まずは動画をご覧ください。 何やら背中の上の回る部分から大量に弾を吐いてきます。 そして、時々自機に向かってくると弾の間隔が狭くなって避けるのが大変になります。 今はテスト実…

【Clip Studio Paint】虫を描く方法

BeeClusterに登場する虫を描く方法はこんな感じでやってます。 基本的には写真をトレースしています。 絵を描くソフトは、CLIP STUDIO PAINT PROセルシスAmazonペンタブレットはWacom ペンタブレット Mサイズ ペン&タッチ Bamboo CTH-670/K0Wacom(ワコム)Ama…

【BeeCluster】3面にオニヤンマを追加!

今日はオニヤンマの絵を描き、3面にテスト実装してみました。 虫を描く方法が自分の中でようやく確立してきました。 最初に描いたハエは図鑑を横目で見ながらいきなり筆で塗り始めるという大胆な方法でしたが、今ではもう少しまともになっていると思います。…

【BeeCluster】3面の背景を作った

3面の背景と初の生き物でないキャラクターであるトラックを作ってみました。 スケール感にかなり無理がありますが、幸いリアル感を追求したゲームではないので許される事でしょう。 配置とかスピードとかはまだ調整していません。 とりあえずテスト実装して…

【cocos2d】自動弾避けアルゴリズム

暑い!夏になってしまう! そうです。夏までにこのゲームを完成させなくてはならないので急がなくてはなりません。 今回は、自機であるミツバチが敵の弾や仲間のハチを避けつつも集団で行動するアルゴリズムについて書きたいと思います。 自動弾避け機能がわ…

【cocos2d】BeeCluster ステージ2完成

BeeClusterのステージ2がある程度形になりました。テストプレイをしてくれている奥さんからは「カメレオンの立体感が足りない」とか「舌が切れている」とか自分でも気になっていたけど気づかないふりをしていた事を指摘されてしまったので、いずれ改良したい…

【cocos2d】親ノードと子ノードのCCActionを同期させる方法

子ノードのアクションを親ノードのアクションにシンクロナイズさせてタイミングを合わせたいときありますよね。 そんなときは、親ノードのCCCallBlockで子ノードに対しrunActionしてやればうまく行きます。 例えば、この動画をご覧ください。 これは、今開発…

【cocos2d】CCActionで実現できない複雑な動きの実装方法

前回のポストでも少し触れましたが、cocos2dのCCActionで実現できない複雑な動きはアクションを細切れにする事で実装できます。 例えば、BeeClusterの1面中盤、0:45辺りで登場するモンシロチョウの動きはその方法を使っています。 基本的には自機に向かって…

【BeeCluster】2面を途中まで作った

BeeClusterの2面を途中まで作りました。 今ボスの絵を描いている途中なのでボスは登場しません、 1面のボスだったノコギリクワガタが中ボスとして何匹か出てきます。 それでは、プレイ動画をご覧ください。難易度を結構高めにしたので中ボスでやられてしまい…

【cocos2d】注意!CCActionの使い回しはできません

同じアクションをいくつかのノードで走らせたい場合、同じCCActionオブジェクトを使い回したくなりませんか? 親子関係にあるノードを一緒にCCFadeOutでフェードアウトさせたい場合などです。ところが、同じオブジェクトを使い回してこのようにプログラムす…

【cocos2d】onExitで[super onExit]を忘れて大ハマり

今日はトホホな1日でした。 何故かというと、ゲームオーバーの処理を実装していたのですが、その途中で意味不明のクラッシュが発生して原因を見つけるのに5時間費やしてしまったからです。 結果としては、単純に、自分が作ったクラスのonExitメソッドのなか…

【cocos2d】多重スクロールを実装してみた(CCParallaxNodeは使ってません)

BeeClusterの2面用に多重スクロールを実装したいと思います。 多重スクロールにより画面に奥行きを持たせ、空中砲台のような敵キャラを登場させたいと考えています。 さて、cocos2dにはCCParallaxNodeという多重スクロールを簡単に実装できる機能があるので…

【cocos2d】背景画像をjpegに変換してデータを軽くしてみた。何としても50MBにおさめるために

BeeClusterの1面の背景画像は640x2000pixelのスプライトを6枚で構成されています。 今使っている画像圧縮フォーマットはpngです。pngは劣化がなく、半透明も表現できるので品質、スプライトとしての使い勝手は最高です。 しかし、そんなpngフォーマットにも…

【cocos2d, iPhone アプリ】iPhone5, iPad miniのサポート

今まで3.5インチのRetinaディスプレイ(iPhone4, iPhone4S)用のデータしか用意していませんでしたが、そろそろiPhone5の4インチRetinaディスプレイ用のデータも用意したいと思います。 また、iPhone3GS以前の非Retinaディスプレイを捨てるとこのポストで書き…

【cocos2d】仲間キャラを実装してみた

前回作成したタップ検出機能を使って味方キャラをを仲間に入れる機能を実装してみました。 味方キャラなのですが、出現部分は敵キャラ生成ルーチンにそのまま便乗します。 従って、当たり判定のない敵として現れ、タップされると本当の味方キャラを生成し、…

【cocos2d, Objective-C】オブジェクトにタップを知らせる機能をつけた

BeeClusterでは基本的にタッチ機能はキャラクターの移動に使用します。 タッチを管理するTouchLayerクラスのlocationプロパティを使用して自キャラや敵キャラなどのオブジェクトはタッチ位置を知る事ができます。 マップのあちこちにいる味方キャラをタップ…

【cocos2d】1面ボスを作ってみた。CCActionで複雑なパターンを実装

1面のボスキャラとしてクワガタを作りました。 まずは動画をご覧ください。 ボスキャラは特殊な処理が多いので雑魚キャラとはクラスを分けて実装することに決めました。 イニシャライザーの実装です。 - (id)initWithPosition:(CGPoint)position type:(NSStr…