cocos2d
前回地上物を表示させた偽スペハリですが、本家スペハリのような迫力がありませんでした。どうやら普通に3Dの計算をするとダメなようなので少し計算にインチキを加えてやりました。 ついでに背の高い木と空中を浮遊する岩を追加しています。 岩の下の地面に…
偽スペースハリアープロジェクトにようやく敵キャラクター的なオブジェクトを追加します。 今回は地上のスクロールとシンクロして動く茂みを表示してみました。こんな感じです。しかし、本家のスペハリと比較するとかなりの違和感を感じます。 本物はもっと…
前回チェック模様の地面の表示まで進んだ偽スペースハリアープロジェクト。 今回は地面の奥に表示される空、山、森を表示してみました。グラデーションが美しい空は地平線に合わせて上下させているだけで左右にはスクロールしていません。 奥の山と手前の森…
前回はスプライトでスペースハリアー風の地面の横縞を作りました。 しかしながらスプライトに動く縞模様をつけるのは無理っぽいことに気がつきました。 そこで、逆転の発想で地面全体から横縞以外の部分を抜く事にしました。 その後ろに別の色の地面を重ね合…
偽スペースハリアープロジェクトを引き続き進めています。 今回は手前にスクロールする横縞を表示します。 まだ地面のチェッカー模様は実現できていませんが、縦方向へのスクロールが完成しました。横縞はスプライトで表示しますが、CCSpriteのpositionやsca…
さて、前回の対戦(前編、後編)ではほぼ引き分けとなりましたSprite Kitとcocos2dのパフォーマンス対決、いよいよ今回が最終戦となります。 この対戦の勝者が私の(エセ)スペースハリアープロジェクトのゲームエンジンに採用されることになります。今回は、…
前回の、「Sprite Kit vs cocos2d パフォーマンス対決! 意外にも?」の続編になります。Sprite Kitに関しましてはAppleのオフィシャルドキュメント「Sprite Kit Programming Guide」が現状唯一の解説書になりますので、ひたすら読んでいるところです。(Get…
次のプロジェクトでSprite Kitにチャレンジしようかcocos2dを引き続き使おうか迷っています。 そこで、パフォーマンス対決をやってみました。ちなみにSprite Kitのプロジェクトを作るのは簡単で、Xcode5のWelcomeスクリーンからCreate a new Xcode projectを…
以前のポスト、「【cocos2d】慣性スクロールの実装。背景をヌルヌル動かす」でキャラクターをタイルマップ上で自由自在に動かすことができるようになりました。 今回は、キャラクターの行く手を阻む壁をタイルマップ上に表現してみます。例によって、この本…
cocos2dで原点が異なるオブジェクト同士、あるいはタッチ位置とオブジェクトの座標を比較するときに便利なconvertToWorldSpace系のメソッドですが、良く理解していなかったので少し調べました。convertToWorldSpaceの類似メソッドとしてconvertToWorldSpaceA…
3日ほど前にアップルから「Submit your iOS 7 apps today」というメールが来ました。自分のiPhoneをiOS7に上げてしまうとiOS6での実機テストができなくなってしまうので、とりあえずXcode5をダウンロードし、iOS7シミュレーターで動作を確認してみました。c…
CCSpriteのオブジェクトでタッチを処理しようとしたら結局cocos2dのtouchDispatcherみたいなものを作っていたという話。 touchDispatcherの事は今日まで使った事がなく、よく理解していなかったのですが、「もしかしたら同じようなものなのでは」と思い調べ…
アプリマーケティング研究所さんの「レビュー評価とランキングに相関関係あり?アプリのレビュー評価を引き上げる4つのポイント。」を読みました。 App Storeのレビューの重要さを改めて認識し、早速App AnnieでBeeClusterのレビューをチェック!いきなり目…
タッチ操作に合わせて気持ちよく背景を慣性スクロールさせてみます。 実際にはタッチ操作で自機の座標を動かし、同時に背景の座標をを逆方向に動かす事でキャラクターを画面の中心に保ったまま背景をスクロールさせています。早速キャラクターのクラスCatク…
引き続きタイルマップと格闘しておりますが、今日はタイルマップのマップチップの間の隙間に悩まされました。 この醜いギャップを何とかしないことには先に進めないのです。問題その1: マップを動かさない状態で特定の位置に出現する線状の隙間前回作ったプ…
つぎのアプリではタイルマップを使ってみようと思い、しばらく放置していたTiledを0.8.1から最新版の0.9.1にアップグレードし、早速タイルマップを表示するプログラムを組んでみました。マップのデータを用意していないので、とりあえずTiledのexamplesフォ…
cocos2dで開発したiPhoneアプリをGame Center対応にする方法の後編です。 前編はこちら。 前編でiTunes Connectでの設定を終えました。後編の今回はGame CenterのLeaderboard機能を実装するプログラミングを行います。1. Info.plistファイルの編集 プロジェ…
BeeClusterにポーズメニューを実装したときの方法をメモしておきます。cocos2dでアプリの動作を一時停止するにはCCDirectorにpauseメッセージを送ります。 [[CCDirector sharedDirector] pause]; BGMを止める場合はSimpleAudioEngineにpauseBackgroundMusic…
cocos2dのCCParticleBatchNodeって、パーティクル表示中にremoveAllChildrenで子ノードを削除するとクラッシュしませんか?いろいろ調べたのですが、結局クラッシュの原因は分かりませんでした。 もしかするとcocos2dのバグかもしれません。同じ現象が報告さ…
すみません。この方法は根本的にダメでした。 iOS5.0.1の実機だと一応動作していたのですが、iOS6のシミュレーターでクラッシュしました。 __weak指定の_tweetViewControllerが解放されるのが原因でした。 __weakを外すとリテインサイクルになるかもしれない…
BeeClusterにツイートボタンを付けてツイッターでハイスコアをつぶやけるようにしてみました。追記:この方法でツイッターボタンのレスポンスが遅いと感じた方は「【BeeCluster】一瞬「うっ」となるTwitterボタンのレスポンスを改善」もご覧下さい。全面的に…
現行バージョンのBeeClusterはボスキャラのダメージがどれほどなのかがわからず戦っていて不安になるのでライフゲージをつけてみました。 また、ライフの残量に合わせて色を緑から赤に変化させることでより一層のダメージ感を演出しています。 まずは、動画…
3週間ぶりのプログラミングなので、リハビリがてら昨日の記事で書いた改善案の一つ、自機がダメージを受けたら色を変える処理を実装してみました。 わずか数行の変更ですが、リリース済みの完璧な(?)プログラムに手を入れるのはなぜか気が重いですね。これ…
追記:Xcode5だとここに書いてある方法ではは上手く行かないみたいなので、もっと簡単なこちらのリンクに書いてある方法をオススメします。 【cocos2d】Xcode5で新規cocos2dプロジェクトを一番簡単にARC対応にする方法 - 夏までにiPhone アプリつくってみっ…
BADLANDというアプリがセールで50%offだったので買ってみました。 こんな感じの影絵風の画面の中を謎のキャラクターが飛び回る横スクロールゲームです。 Apple Design Awardsの一つに選ばれたアプリです。 タップするだけの簡単操作なのですが、物理演算を使…
App Storeへサブミットした後にバグがみつかりました。 エンディング後の2週目で原因不明のクラッシュが起きるという物です。 ゲームオーバー後の再スタートは成功しているので初期化はできているはずなのですが・・・そこで気になったのがテクスチャアトラ…
4月1日にプロジェクトを開始したBeeCluster。 本日6月18日に完成しました! 3ヶ月で開発するという目標は無事達成しました。 あとはAppleに審査に出してリリースとなりますが、やり方はこれから調べます。と思ったらiPad 6.1シミュレーターでクラッシュする…
そろそろリリース時期も近くなったので、初めてリリースビルドを試してみました。実機で走らせてみると全ての敵キャラクターが画面左下に向かって飛んで行きます。そしてしばらくするとクラッシュ。 そして、シミュレーターで実行する場合は正常に動きます。…
BeeClusterのメインプログラムがほぼ完成し、リリースに向け少しずつ改良しています。 今回は、NSUserDefaultsを使ってハイスコアを記録できるようにしました。 アプリケーションを削除しない限りハイスコアを保持できますので、ハイスコアを更新する楽しみ…
cocos2dのCCActionで時間待ちをするとき、CCDelayTimeを使えばいいこといまさら知りました。 これまではそれを知らなかったのでCCRotateByで角度を0にしたりやCCMoveByで移動をゼロにして時間稼ぎしていました。 これでも動いていましたが、せっかくなので全…