2012年1月4日水曜日
cocos2dでタワーディフェンス その1
ここは、このページを参考にしてcocos2dを使ってタワーディフェンスゲームを作成していく備忘録です。
このチュートリアルでは、まず以下の事からやっていくようです。
■ waypointの作り方
■ タイルマップを読み込んで、オブジェクトとして扱う方法
■ Creeps/Bad Guys/Enemies (要は侵入者ですか) の作り方
■ 決められた軌道に沿って移動を行う方法
■ iphone上でスムーズに移動を行う方法
これらの事無くしてタワーディフェンスとは言えないらしいですな。
まぁ、第一回目は基本の敵がタイルマップ上の決められたパスに従って移動させる方法の紹介のようですね。
これから解説するソースコードは以下からDLできます。
http://www.iphonegametutorials.com/wp-content/uploads/2011/04/TowerDefensePart1.zip
ここではタイルマップの作成に「Tiles」というツールを使うので以下からインストールします
http://www.mapeditor.org/
あと、cocos2dは必須なんでDLしときましょ。設定の仕方はググッてくだされ。
http://www.cocos2d-iphone.org/
それではDLしたソースの重要なクラスの機能を簡単に紹介
■ TowerDefenseTutorialAppDelegate
このクラスはWindowをつくって、CCDirectorをロードして、最初のシーンを作成するクラスとなります。
■ RootViewController
UIViewControllerを継承してるから、画面の向きを簡単に変えられるますとのこと。
まぁ、ここで画面を横向きにしているんでしょね。多分。
■ GameConfig
この時点では画面の向きに関する基本的な定数しか定義してないですね。
後々いろいろとここで定義するんでしょうな。
■ TutorialScene
一番メインのクラス(色々やってるクラス)みたいですね。
ここではマップを読み込んで「creep」(敵ですね。あとで説明します)をパスにセットするみたいですね。
■ DataModel
簡易検索のためのメインデータの配列を格納しておくシンプルなModelインターフェースらしいです。
■ Creep
敵クラスです。はじめは2種類ですが、後々増えてくるみたいです。
■ Waypoint
タイルマップエディタと組み合わせて使用する単純なクラス。
このクラスで「Tiles」と連携するんでしょうかね。
■ Wave
「creep(敵)」の順番を制御するクラスですね。
とりあえずこんな感じのようです。
説明で、「creep」って出てきたと思いますが、タワーディフェンス(以下 TD)には色々用語があります。
覚えておくとクラス名とかから、何をしているのか想像しやすくなるので解説しておきます。
■ wave
敵の隊列。TD系のゲームではwave=ステージやレベルとなることが多いです。
■ creep、bad guy
敵ですね。
■ range
砲台の射程距離です。
■ upgrade
砲台を強化することです。
3段階まで強化できるのをよく見かけます。
■ waypoint
敵が通る順路です。
たいての場合、敵がどこを通るかが何らかの方法で示されています(道が光ったり)。
あと色々あったと思うんですが、思い出し次第書いていこうかと思います。
とりあえず今回はここまで。
次回から実装の方に入っていきたいと思います。
ラベル:
cocos2d,
iphone,
objective-c,
アプリ
2011年2月14日月曜日
AdMobでどれくらいの収入になるのか?
さて、AdMobを導入した iphoneアプリ「学歴計算機」をリリースして約1ヶ月が経過しました。
ブログ内でも紹介していますが、この「学歴計算機」は3枚構成の画面になっています。
その内、アプリを起動すると必ず表示される画面(生年月日を入力する画面)にAdMobの広告バナーを貼りました。
リリースから今までのDL数は 2,813。
AdMobは自分のアプリで、自分の他のアプリの宣伝を何%表示させるか設定できます。
その設定を25%に設定。
つまり、広告が表示される4回に1回は自分の別アプリの宣伝となり
広告収入はありません。
それでは、この状態でどれくらいの収入があるのでしょうか??
答えは。。。。。
さて、この数字を多いと取るか少ないと取るかはあなた次第です。
AdMobがいいと思うのは
自分のアプリ内なら自分の他のアプリが無料で宣伝できる所です。
例えば、広告を100%自分のアプリの広告にするように設定します。
2813人の約1%にあたる28人のユーザが
私の他の有料アプリ(115円の内利益は81円) をDLしてくれると
2,268円の収入になります。
どうですか?
こう考えると、AdMobも捨てたもんじゃないと思いませんか?
広告収入だけで考えると、TGAdという広告ネットワークの方が
収入は多くなるような気がしますね。
(クリック収入ではなく表示収入なので。これはまたの機会に)
どちらにせよ、広告収入だけをアテにするなら
色々と考える必要があると思います。
特に、私が今回広告を入れたアプリのように
DL後1度程度しか起動されないであろうアプリではダメって事ですね。(当たり前。。。)
ブログ内でも紹介していますが、この「学歴計算機」は3枚構成の画面になっています。
その内、アプリを起動すると必ず表示される画面(生年月日を入力する画面)にAdMobの広告バナーを貼りました。
リリースから今までのDL数は 2,813。
AdMobは自分のアプリで、自分の他のアプリの宣伝を何%表示させるか設定できます。
その設定を25%に設定。
つまり、広告が表示される4回に1回は自分の別アプリの宣伝となり
広告収入はありません。
それでは、この状態でどれくらいの収入があるのでしょうか??
答えは。。。。。
さて、この数字を多いと取るか少ないと取るかはあなた次第です。
AdMobがいいと思うのは
自分のアプリ内なら自分の他のアプリが無料で宣伝できる所です。
例えば、広告を100%自分のアプリの広告にするように設定します。
2813人の約1%にあたる28人のユーザが
私の他の有料アプリ(115円の内利益は81円) をDLしてくれると
2,268円の収入になります。
どうですか?
こう考えると、AdMobも捨てたもんじゃないと思いませんか?
広告収入だけで考えると、TGAdという広告ネットワークの方が
収入は多くなるような気がしますね。
(クリック収入ではなく表示収入なので。これはまたの機会に)
どちらにせよ、広告収入だけをアテにするなら
色々と考える必要があると思います。
特に、私が今回広告を入れたアプリのように
DL後1度程度しか起動されないであろうアプリではダメって事ですね。(当たり前。。。)
2010年10月27日水曜日
performSelector:withObject:afterDelay:
iPhoneアプリ開発してて、遅延実行が必要になったので色々調べてたんですが、そこでperformSelectorなるメソッドを見つけたんですが、みなさん小難しい言葉で書いておられ、
第二引数(withObject)って何?とか結構悩んだので(読解力の無さは置いといて)、私なりに簡単にまとめときます。
iPhoneアプリ作ってると、何かちょっとこの動作遅らせて実行したいってときがあるかもしれません。たとえば、1秒後に今表示している画像をフェードアウトさせたいとか。
こんな時に思いつくのがNSTimerなんですが、performSelectorを使うともう少しシンプルに実装できます。
こんな感じ。
[self performSelector:@selector(methodHoge:) withObject:nil afterDelay:0.1];
これだと、「methodHoge」を0.1秒後に実行しまっせ。って事になります。
第二引数の「withObject:nil」なんですが、これはmethodHogeに引数が必要な場合に使います。たとえば
-(void)methodHoge:(NSString *)msg {
みたいな感じなら
[self performSelector:@selector(methodHoge:) withObject:@"オラオラ" afterDelay:0.1];
となります。
おもいっきり簡単に言うとこれだけ。
これだけの事なのに30分ぐらいGoogle先生を見つめてましたorz。
第二引数(withObject)って何?とか結構悩んだので(読解力の無さは置いといて)、私なりに簡単にまとめときます。
iPhoneアプリ作ってると、何かちょっとこの動作遅らせて実行したいってときがあるかもしれません。たとえば、1秒後に今表示している画像をフェードアウトさせたいとか。
こんな時に思いつくのがNSTimerなんですが、performSelectorを使うともう少しシンプルに実装できます。
こんな感じ。
[self performSelector:@selector(methodHoge:) withObject:nil afterDelay:0.1];
これだと、「methodHoge」を0.1秒後に実行しまっせ。って事になります。
第二引数の「withObject:nil」なんですが、これはmethodHogeに引数が必要な場合に使います。たとえば
-(void)methodHoge:(NSString *)msg {
みたいな感じなら
[self performSelector:@selector(methodHoge:) withObject:@"オラオラ" afterDelay:0.1];
となります。
おもいっきり簡単に言うとこれだけ。
これだけの事なのに30分ぐらいGoogle先生を見つめてましたorz。
2010年10月12日火曜日
Prepare for Upload
画像を90度づつ回転させて、保存するアプリをアップルに申請中。ただいまの状態は「Prepare for Upload」です。
この「Prepare for Upload」って状態、まだ全然アップ作業が終わってない状態なので注意して下さい。これで安心してたらいつまでたってもレビューしてもらえませんよ(経験者)。
今一度、itunes connectに戻ってちょいと作業すると「waiting for upload」になって、
それから圧縮したアプリをUPして初めて「Waiting For Review」となります。
無料でリリースしようとおもったのですが、やっぱやめました。¥115です。すんません・・・
とりあえずアプリの説明でも書いていますが、現状は上記機能しかありませんが、どんどんと画像系の機能を追加させていきたいと思ってますんで、よかったらDLして下さいませ。
「Ready for Sale」になったら名前を発表します。
画像系で欲しい機能がありましたら、ここにコメント頂くか、レビューに書いて下さい。自分の力量で可能だと判断したらどんどん作成していきますので。
この「Prepare for Upload」って状態、まだ全然アップ作業が終わってない状態なので注意して下さい。これで安心してたらいつまでたってもレビューしてもらえませんよ(経験者)。
今一度、itunes connectに戻ってちょいと作業すると「waiting for upload」になって、
それから圧縮したアプリをUPして初めて「Waiting For Review」となります。
無料でリリースしようとおもったのですが、やっぱやめました。¥115です。すんません・・・
とりあえずアプリの説明でも書いていますが、現状は上記機能しかありませんが、どんどんと画像系の機能を追加させていきたいと思ってますんで、よかったらDLして下さいませ。
「Ready for Sale」になったら名前を発表します。
画像系で欲しい機能がありましたら、ここにコメント頂くか、レビューに書いて下さい。自分の力量で可能だと判断したらどんどん作成していきますので。
登録:
投稿 (Atom)
