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

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

cocos2d

cocos2d 2.1を2.2にバージョンアップして恐怖の64bit対応 (続編)

さて、前回行った、TravelShooting JPの64bitプロセッサへの対応ですが、問題もほとんど出ずに完了したので、本当に64bitで動作しているのか不安になってしまいました。前回の記事: tf.hateblo.jp今回は、64bit版のプログラムで動作している事をこの目で確…

cocos2d 2.1を2.2にバージョンアップして恐怖の64bit対応

cocos2d 2.1で開発したTravelShooting JP iOS版ですが、Appleによる64bitアーキテクチャ対応への期限が迫ってきたので恐る恐るcocos2dをバージョン2.2にアップグレードし、64bit対応を実施しました。64bitアーキテクチャに対応していない場合、6月1日以降は…

【TravelShooting JP】スペハリ風移動アルゴリズムを試すも不採用に

セガ3D復刻アーカイブス - 3DSを買って以来スペハリをやりまくっていますが、ハリアーの移動に若干の違和感を感じました。 円を描くように操作しているつもりなのですが、ハリアーは菱形に移動してしまいます。 試しにプレステ3版を起動して試しましたが、結…

【cocos2d】全てのSEをピタッと止める

ゲームにポーズ機能をしばらく前に付けましたが、ポーズした時に鳴っているSEがすぐに鳴り止まず、弾の発射音や爆発音が後を引くのがずっと気になっていました。 BGMはSimpleAudioEngineのpauseBackgroundMusicで一時停止できますが、エフェクトの方はどのエ…

【cocos2d】処理待ち時間にグルグル回るやつを表示する機能を実装

GameCenter機能やIn App Purchase機能など、サーバーとやり取りする機能を付け始めると、サーバーからのレスポンス待ちの間にLoading...とかPlease Wait...などと表示しつつ何か画面内で動かす事でユーザーを安心させる必要が出てきます。今回はcocos2dの画…

【TravelShooting JP】cocos2dでデバッグ用コリジョン円を表示

現在開発中のスペハリ風シューティングゲームTravelShooting JPでは単純な円を使った当り判定を採用しています。2つのノード間の距離とそれぞれのノードが持つコリジョン円の半径を足した値を比較するだけの非常に単純で高速なコリジョン検出方法です。簡単…

【cocos2d】scheduleUpdateでプライオリティを指定するのは超重要

久々にハマりました。 例によってTravelShooting JPというスペハリ風擬似3Dシューティングゲームの開発をしていまが、新たなボスキャラを実装し、それを満足げに眺めているうちに嫌なことに気がついてしまいました。このゲームでは自キャラが上下に動くとそ…

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

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

【TravelShooting JP】衛星オブジェクトを持つボスのモーションの作り方

夏までに完成しなかったTravelShooting JPに新しいボスを追加しました。 スペハリで言うところのシュラのようにボス本体の回りに衛星のように別のオブジェクトが回るタイプのボスです。動画で見るとわかりやすいと思います。なお、スプライトのテクスチャー…

bmGlyphでゲーム用にゴージャスなフォントを作る

前作BeeClusterでは「フラットデザイン」と言い張り、飾り気のない真っ白なフォントを使っていました。 手抜きはいとも簡単に見破られ、レビューで「文字にやる気が感じられない」とのご指摘を受けてしまいました。 そこで、今作のTravelShooting JP(名前初…

【cocos2d】BGMをシークしてデータ量を削減

現在開発中のスペースハリアー風シューティングゲームではスペースハリアーと同じように、テーマソングは1曲だけでその再生開始位置を面ごとにズラすことで変化をつける予定です。 つまり、1面はBGMのイントロから、2面はAメロ、3面はBメロという感じです。 …

【cocos2d】VertexZをやめてZソートで半透明表示の問題を回避

現在開発中のスペハリ風シューティングゲームではcocos2dのVertexZを使って3D空間でのキャラクターの重ね合わせを行っていました。 【偽スペースハリアー】地上物を追加。だが違う。何かが違う! - 夏までにiPhone アプリつくってみっか! 上記の記事にある…

GarageBandでループ再生用ファイルを作る方法(ただし時間制限あり)

ゲーム用BGMの多く、特にボス戦用の曲はつなぎ目無くループ再生されますよね? 曲が終わってから次に始まるまでにたとえわずかでも曲間が開いているとどうでしょう。 シューティングゲームの場合はノリが悪くなってゲームに集中できなくなるかもしれません。 …

主人公の絵が完成。ゲームに組み込んでみた

主人公の女子高生の全ての動きの絵が完成しましたので、ゲームに組み込んで正しく表示される事を確認しました。また、飛行時の絵を切り替える位置も最適化し、できるだけよく動くように調整しました。本物のスペハリは地面を走っていると茂みに弾を当てるの…

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

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

【偽スペースハリアー】自家製スペハリfor iPhone完成!これからが本番

iPhone用のスペハリ的な擬似3Dシューティングゲームを作ろうと思い立ってから約2ヶ月間、なぜか本物のスペハリをそのまま移植してきました。理由としましては:1. プロトタイプ用の絵や音楽を作るのが面倒くさい 2. 擬似3Dゲームの様々なノウハウを吸収した…

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

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

【cocos2d】テクスチャーをキャッシュに先読みしてゲーム中に画面が一瞬止まるのを防ぐ方法

ゲームで使うテクスチャーが多くなってくると1枚のスプライトシートに収まらなくなり、複数のスプライトシートの分ける必要が出てきます。 iPhone4の最大テクスチャーサイズは2048x2048らしいのでこれをリミットとすると、私の偽スペハリの場合はボスのテク…

【cocos2d】あえて同時発声を制限してキレのいいSEを鳴らす

昔のゲーム機やパソコンのハードウェアのスペック表には同時発声数: FM音源8音、PSG3音などと必ず記載されていました。 いつしかPCM音源が標準になり、ソフト的に何音でも重ねられようになり、好きなだけジャンジャン音を鳴らせるようになりました。しかし、…

【cocos2d】cocos2d v2.0プロジェクトをv2.1にアップグレードする方法

これまでcocos2d v2.0を使い続けて来ましたが、v2.1がリリースされてからしばらく経ちます。 現状v2.0で特に困ることはありませんし、問題なく動いているプロジェクトに余計な手を入れるのは気が進みませんが、完成間近に何らかの理由でアップデートせざるを…

【偽スペースハリアー】CCRenderTextureで影の重なりが濃くなるのを防ぐ

偽スペハリでドラゴンの影同士が重なり合うとその部分が濃くなるという問題がありましたので少し強引な方法で修正しました。 たぶんここに書いてある方法は他の条件だと上手く行かない場合があると思います。まず、問題となっている現象はこれです。 影が重…

【偽スペースハリアー】サイン・コサインでドラゴンの動きを完コピ?

雑魚キャラのモーション作成の目処もついたので、いよいよボスキャラをどう実装するか検討してみたいと思います。スペースハリアーの多くのボスキャラはやられない限り永遠に画面に居続けるため、雑魚キャラのようにあらかじめ動きの軌跡をデータとして持っ…

【偽スペースハリアー】3D座標を簡単に見つけるためのツールを作成

前回、 【偽スペースハリアー】ベジェ曲線で滑らかに敵を動かしてみた - 夏までにiPhone アプリつくってみっか! ではベジェ曲線に沿って敵キャラクターを動かしてみました。ベジェ曲線はいくつかの3D座標からなる直線データを元に生成しているのですが、実…

【偽スペースハリアー】ベジェ曲線で滑らかに敵を動かしてみた

これまでは岩とか木とか動かない敵ばかりでしたが、いよいよまともに動く敵の登場です。 3D空間を動かすとなると残念ながらx, y座標限定のcocos2dのCCActionは役に立ちません。 3D空間を動かす方法はいろいろ考えられますが、スペハリのほとんどの雑魚キャラ…

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

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

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

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

【偽スペースハリアー】ロックオンしない通常弾はダミーターゲットを追尾

今回は敵をロックオンしない状態で発射される通常弾を実装しました。 ロックオン弾より簡単に思えますが、実はこっちの方が難しいので後回しにしていました。 「まっすぐ飛ばせばいいんじゃないの?」と思うかもしれませんが、3D座標上でまっすぐ前方に飛ば…

【偽スペースハリアー】CCActionとupdate:の併用で敵の爆発を演出

前回、 【偽スペースハリアー】超能力ホーミングミサイル発射! - 夏までにiPhone アプリつくってみっか! ではホーミングミサイルを発射して敵をやっつける機能を追加しましたが、爆発させる処理を入れていなかったのでただ消えるだけの物足りない状態でし…

【偽スペースハリアー】超能力ホーミングミサイル発射!

今までは敵キャラを避けるだけだったハリアー君ですが、今回ようやく攻撃能力を身につけました。本物のスペースハリアーと同様に、弾はロックオンした敵に向かって飛んで行きますので、敵をやっつけるのは比較的簡単です。 弾は一定間隔で自動的に発射されま…

【偽スペースハリアー】CCActionを駆使してやられシーンを演出

今回はコリジョン検出を実装し、ハリアーが地上物や空中物に当ったときにやられたりバランスを崩したりするシーンを再現してみました。本物のスペハリを改めてじっくり観察してみると結構複雑で、久々にcocos2dのCCActionをたくさん使いました。 また、せっ…