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

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

2013-05-01から1ヶ月間の記事一覧

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

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

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

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

【Clip Studio Paint】連続した背景を描く方法

BeeClusterの背景は1面以外は同じテクスチャーを繰り返し表示しています。 大きな絵を描くのは結構大変なので、特徴のない草原などの背景であればそこそこの大きさのテクスチャーを1枚描けば良いので開発期間を短縮できます。 しかし、普通に並べるだけでは…

【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…

【cocos2d】CCRepeatForeverで大ハマり。CCRepeatを使うべし

ボスキャラの動きのパターンを実装しているところで大ハマりしました。 画面外からズズーンと現れ、あとは弾を撃ちながら左右に行ったり来たりするという動きなのですが、これを、CCSequenceとCCRepeatForeverの組み合わせで実装しました。sequenceLRLという…

【cocos2d】スコアを表示してみた

スコア表示を管理するクラスを作成しました。 CCLayerを継承し、CCLabelTTFで現在のスコアをハイスコアを表示します。今のところはゲームオーバーがないので常にスコア=ハイスコアの表示になっています。実装はこんな感じです。 今回のハマりポイントはラベ…

【Objective-C】プロジェクト共通のマクロをまとめてみた

複数のクラスから参照したい共通のマクロを一つのファイルにまとめました。 とりあえず、この回で作った指定範囲の乱数を返すMYRANDマクロや、基本のフレームレートを示すFPSマクロを定義するCommon.hという共通ヘッダファイルを作りました。 #define MYRAND…

【iPhoneアプリ】アプリ名をBeeClusterに決定しました!

1ヶ月前に開発をスタートした初めてのiPhone用アプリですが、ようやくメインキャラクターに本番? 用画像を入れる事ができました。これまで長らくお世話になってきたcocos2dのアイコンとようやくサヨナラする事ができ、嬉しいような少し寂しいような。 また、…

【cocos2d】CCCallFuncで予想外のリテイン発生?ハマった件

あるオブジェクトのdeallocが突然呼ばれなくなりデバッグに数時間かかってしまいました!ノードAのCCCallFuncで別のノードBのメソッドを実行する場合、おそらくノードAはノードBをリテインするんですね。知りませんでした。 CCCallFuncはCCRepeatForeverの中…