リンク
とp

2012年08月05日

その1、cocos2Dココス iphoneアプリ開発日誌、簡単なところからプログラムをはじめよう、葉月、2012年8月2日から5日までの分

その1、cocos2Dココス iphoneアプリ開発日誌、簡単なところからプログラムをはじめよう、葉月、2012年8月2日から5日までの分

前回レッスンノートをもとにcocos2Dココスバージョン1.0からバージョン2.0への移植と誤植を修正しながらiphoneアプリ開発をしようと途中まで頑張りましたが挫折しました。
コメントしてくださったり、アドバイスの書き込みありがとうございました。もうちょっとやってみましたが、ダメでした。

Ver2.0のテンプレートからソースコードをコピペしてVer2.0に移植しながらアプリを作ってみようと思いましたが、動くか動かないかで悩んで、飽きてしまいそうなので、もっと自分に合った簡単なコードからアイフォンアプリゲームを作ってみようと思います。


でもレッスンノートは参考書として活用していきたいと思います。クラスのデザインコーディングは非常に参考になりました。たぶん、再利用とか複数人数での開発には必要なデザインだと思います。でも私は一人なので、あまり再利用を考えてもそのための設計を考えるだけで時間が経過してしまって何も進まないことがおおいので、とりあえずは、どんどんコーディングをしてうごかして、アイフォンアプリのゲーム開発を進めてみたいと思います。


今回は、もっとシンプルで簡単なiphoneアプリ開発はします。 youtubeの動画のコーディングチュートリアルを参考にしながら、 iphoneアプリを開発しようと思います。ユーチューブが見ることができる時代になってほんとに良かったです。

まず簡単アイフォンアプリゲームの開発項目を考えてみました。
まず、スプライト画像がアニメーションして、ユーザがタップして何かの変化、イベントが発生するところまでを作ってみます。
難しいところや細かい装飾性に伴うアニメーション(エフェクトとかディゾルブとか爆発とかポイントアップとか)は、余力があったときや何か書籍に記載されているのを発見したら入れてみます。



<開発項目リスト目標>



1、画像の移動アニメーション
2 タップによる画像の消去または画像の変更
3 複数スプライト設定(六匹ほどランダム表示)
4 score設定、タップでポイントアップ加算
5 ミスをした時の残機減少
6 複数面、シーンの設定
7 ゲームタイトル、ゲームオーバー、リプレイ画面の設定
8ランキング表示、
9 サウンド作成、設定
10 時間制限設定、カウントダウン、
11 ボーナスアイテムの出現
12 ボーナスアイテムの取得による各種変更、
13 ゲーム開発用確認デバッグのための開発
14その他



いまのところ、一人で開発なので、シンプルでわかりにくいけど、とりあえず動くアプリゲームが目標です。
そのため、グローバル変数のような変数だらけで、極端に長いコードとなるでしょう。
それでもまず、動かしつつ理解しつつアプリを作り上げていくことを第一にします。
動かせないとさっぱりおもしろくもありません。理解も進みません。という解釈で進めていきます。

クラスを複数に分けたり、総合的に管理したり、効率よくアプリを作成するのは二の次にします。
たぶん、統合的で効率の良い方法を覚えているところから、他のことを忘れていって、アプリすら作らなくなるから。
この開発日誌は、アプリ開発が飽きて1年後に、また作りたくなったときに、この日誌を見ると思い出すことを目的にしています。



<進捗状況>

1、画像の移動アニメーション


複数のスプライトにて、左から右へ、下から上へのループアニメーションを設定しました。
A点からB点への単純移動アニメーションです。

 構成は、単に、xかy座標の数値をカウントアップして、ある一定の値に達したら、元の位置にします。
 スプライト画像のposition.xに100*dtを加算します。これは、1秒間に100ピクセル動くというものです。
つまり、現在のx座業が10の位置にあると、アプリを実行させて、1秒後に110ピクセルの位置に移動します。
2秒後には、210ピクセルの位置に移動します。シンプルですね。
 でもこのままでは、画面から消えてしまいます。でもプログラムのメモリにはずっと残ってアプリが起動している間はずっとピクセル加算されて移動したままです。
 それでは困るのは、ある値を超えたら、ここでは画面サイズ480ピクセルを越えたところで、新しい座標を与えて、画面に表示させるようにします。
メソッドの記述
120804-0001.png

他のメソッドの記述
120804-0002.png

 

2: タップによる画像の消去または画像の変更


レッスンノートに記載のonEnter,onExit,ccTouch関連関数を、記述すると、1で動いていたアニメーションが動かない現象が発生。スプライト画像は表示されているのにアニメーションとして動きません。

グーグルでいろいろと調べて、あきらめかけたときに、あるサイトで
[super onEnter];
[super onExit];
の記述をみつけました。
そこで、この記述を試してみました。動きました。
レッスンノートには記載されていませんでしたが、インプレスジャパンのココス本には、
[super onEnter];
[super onExit];
が記載されていないと正常に動作しない恐れがあると記載されていました。


複数の記載を参考にしながら進めていきます。
まずは、スプライトをタップすると、画面から消すようにします。
その後、他の画像にスプライトを変更できるか、試してみます。
 スプライトをタップしたら、他の画像にしました。うまくいきました。
120804-0003.png


次に、スプライトを消します。これは、spriteをnilにするだけでは消えません。
そこで、
removeFromParentAndCleanup:YES
を設定します。
これで、画面上に表示されなくなります。




3: 複数スプライト設定(六匹ほどランダム表示)




120805-0001.png


cocos2dの使い方【実践】A 〜スプライトで簡単なゲーム 1/2〜Add Starこの記事を参考にさせてもらいました。(報告書き込み未だです。8月4日現在)

次は、6匹というか複数スプライト画像を表示させて、タップすると消えるようにします。
できれば、表示、タップして消して、再度表示して、ループして、表示、消すができるように
したいと思います。

ここで、ちょっと画像を作成しておきましょう。著作権違反にならないように、自作しましょう。Pixelmatorを買いました。
本当はフォトショップが欲しかったのですが、画像作成に6万円も払えません。
でもフォトショップエレメントは1万円くらいなので買ってもいいかなと思ってます。

 まず、作成手順をリストにしてみます。
 1.スプライトを設定して複数のスプライト画像を表示させる
 2.複数のスプライトをそれぞれ個別にランダムにアニーションさせる。
 3.タップすると消える。全部消すと、また、出現する。
 4.2、3を繰り返すゲーム。

 関連するリンク
cocos2d for iPhone v0.99.0-final Release Notes
runAction:[CCRepeatForever について、スクロールの半ばくらいなので、ページ内検索した方がよいです。


ここまでの動作の動きです。音楽は、ユーチューブで編集しました。


★1は、タップすると、別の画像になって、回転します。
★2は、画面から消します。
他は、画面から別の座標へ飛ばしてます。メモリ上は削除してない状態です。
動画キャプチャのフレームレートは8フレームです。アプリの方は60フレームです。

いろいろと、パラメータとなる値をいじったり、スプライト画像を加えたり消したりしているので、当初の説明と変わっているところがあります。





次回はここからです。

4 score設定、タップでポイントアップ加算


 タップで、消せたら、ポイントを表示して加算します。
 まず、作成手順をリストにしました。
 1.タップして、消えるときに、ポイントを加算します。
 2.スコアーとして表示します。
 3.連続タップできるとボーナス加算をします。


5 ミスをした時の残機減少


 ゲームとして、ユーザの制限とペナルティを考えます。

6 複数面、シーンの設定


 1面をクリアしたときの次の面に移動できるようにします。


7 ゲームタイトル、ゲームオーバー、リプレイ画面の設定


 
posted by goodman at 19:24| Comment(0) | アイフォンiPhoneアプリ開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。