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

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

Objective-C

【Objective-C】NSUserDefaultsに値を書き込んだらsynchronizeをすべきなのか?

音量調節ボタンやミュートボタンをアプリに追加しました。ゲーム実行時画面には音量調節とミュートのON/OFFボタン、タイトル画面にはミュートのON/OFFボタンを配置して早速テストしてみると、ゲーム内でミュートしたはずなのに再起動後のタイトル画面ではミ…

【TravelShooting JP】ゲーム開始時の処理をタイトル画面で済ませてレスポンスアップ!

順調に開発が遅れているTravelShooting JPですが、そろそろタイトル画面を付けて見たくなり、タイトル画面としてcocos2dのシーンを1つ追加しました。タイトル画面にボタンを1つ配置し、押すとゲームがスタートするようにしてみたのですが、嫌なことに気がつ…

【Core Motion】モーションセンサー使用時にだんだん座標がずれていくのを防止する

以前、Core Motionを使ってモーションセンサーでゲームを操作する方法についてブログを書きました。【cocos2d】Core Motionを使ってcocos2dゲームをモーションセンサーで操作 - 夏までにiPhone アプリつくってみっか!iPhone4Sだとそれほど気にならなかった…

【cocos2d】Core Motionを使ってcocos2dゲームをモーションセンサーで操作

前回、 【偽スペースハリアー】自家製スペハリfor iPhone完成!これからが本番 - 夏までにiPhone アプリつくってみっか! で一応完成した偽スペハリですが、まだまだプロトタイプとして実験に使って行きます。今回は、CoreMotionフレームワークを導入し、加…

【Objective-C, cocos2d】BGMの切り替えを並列処理して画面のコマ落ちを防ぐ方法

前回、 【cocos2d】テクスチャーをキャッシュに先読みしてゲーム中に画面が一瞬止まるのを防ぐ方法 - 夏までにiPhone アプリつくってみっか! で画面のコマ落ちを防ぐためにテクスチャーの先読みを行いました。 これで完璧か!とテストをしてみると、改善は…

【Objective-C】.plistファイルを経由せず直接.csvファイルからデータを読み込む方法

これまで敵生成データ、敵の動きのデータ、敵の攻撃などのアクションのデータは.plistファイルから読み込んでいました。 .plistファイルからNSArrayへの読み込みは1行で書けるので便利なのですが、これらのデータをいきなり.plistファイルとして書くのは困難…

【Xcode, Objective-C】メインバンドルの下にディレクトリーを作り中のファイルにアクセスする方法

.plistファイルなどのリソースファイルが増えてきて見た目にもプログラム的にも整理したくなってきました。 見た目に整理するだけならXcodeで適当にフォルダーを作ってファイルをぶち込めばいいのですが、それだとプログラムから見たときにはメインバンドル…

【偽スペースハリアー】.plistに従い敵キャラを生成

これまではランダムな位置に敵キャラを生成していましたが、今回からあらかじめ決めた位置・タイミングで敵を生成するようにしました。敵キャラは「名前」、「x座標」、「インターバル」をキーとした.plistに記述し、そこから読み込むようにしました。.plist…

【cocos2d】Xcode5で新規cocos2dプロジェクトを一番簡単にARC対応にする方法

以前、 【cocos2d】cocos2dプロジェクトをARC対応にする - 夏までにiPhone アプリつくってみっか! でcocos2dプロジェクトのARC対応について書いたのですが、久々に新しいプロジェクトを作ってみると上手く行きませんでした。環境がXcode5に変わったのがが原…

【iPhoneアプリ】英語アプリをローカライズして日本語対応にする方法

BeeClusterは世界各国でダウンロードされる事を期待してユーザーインターフェースは英語で表示していました、というのは建前で、本当はローカライズするのが面倒だったためです。 最近は日本でのダウンロードすうが圧倒的なので日本語にローカライズしたいと…

【BeeCluster】コンボヒットでスコアをインフレーション

BeeClusterは上手い人でも下手な人でもクリアしたときのスコアは1万3千何百点に落ち着いてしまうのでスコアアタックの楽しみはありませんでした。 せっかくなので上手い人は高得点を取れるようコンボヒット制度を取り入れます。 敵を連続して倒す事でコンボ…

【BeeCluster】一瞬「うっ」となるTwitterボタンのレスポンスを改善

すみません。この方法は根本的にダメでした。 iOS5.0.1の実機だと一応動作していたのですが、iOS6のシミュレーターでクラッシュしました。 __weak指定の_tweetViewControllerが解放されるのが原因でした。 __weakを外すとリテインサイクルになるかもしれない…

【cocos2d】BeeClusterにTwitterボタンをつけてハイスコアをツイート

BeeClusterにツイートボタンを付けてツイッターでハイスコアをつぶやけるようにしてみました。追記:この方法でツイッターボタンのレスポンスが遅いと感じた方は「【BeeCluster】一瞬「うっ」となるTwitterボタンのレスポンスを改善」もご覧下さい。全面的に…

【BeeCluster】難易度設定機能を追加。セッターメソッドでいろいろやってみた。

いろいろな方から「難しい!」とご指摘を受けております、BeeCluster。 1面しか遊んでもらえないのではもったいないので、次のアップデートでは難易度設定機能を追加します。敵や敵の弾のスピード、敵の攻撃確率をコントロールする機能はすでにプログラムし…

【cocos2d】色が変化するライフゲージをボスにつけてみた

現行バージョンのBeeClusterはボスキャラのダメージがどれほどなのかがわからず戦っていて不安になるのでライフゲージをつけてみました。 また、ライフの残量に合わせて色を緑から赤に変化させることでより一層のダメージ感を演出しています。 まずは、動画…

【cocos2d】cocos2dプロジェクトをARC対応にする

追記:Xcode5だとここに書いてある方法ではは上手く行かないみたいなので、もっと簡単なこちらのリンクに書いてある方法をオススメします。 【cocos2d】Xcode5で新規cocos2dプロジェクトを一番簡単にARC対応にする方法 - 夏までにiPhone アプリつくってみっ…

【BeeCluster】取りあえず完成!しかしiPad6.1シミュレーターでクラッシュ!最適化の副作用か?

4月1日にプロジェクトを開始したBeeCluster。 本日6月18日に完成しました! 3ヶ月で開発するという目標は無事達成しました。 あとはAppleに審査に出してリリースとなりますが、やり方はこれから調べます。と思ったらiPad 6.1シミュレーターでクラッシュする…

【Objective-C】リリースビルドでクラッシュ発生!原因はあいつか!

そろそろリリース時期も近くなったので、初めてリリースビルドを試してみました。実機で走らせてみると全ての敵キャラクターが画面左下に向かって飛んで行きます。そしてしばらくするとクラッシュ。 そして、シミュレーターで実行する場合は正常に動きます。…

【Objective-C】NSUserDefaultsを使ってハイスコアをセーブ

BeeClusterのメインプログラムがほぼ完成し、リリースに向け少しずつ改良しています。 今回は、NSUserDefaultsを使ってハイスコアを記録できるようにしました。 アプリケーションを削除しない限りハイスコアを保持できますので、ハイスコアを更新する楽しみ…

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

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

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

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

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

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

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

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

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