Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

cocos2d-xでブロック崩しを作ってリリースしました

ミニゲームを作りました。

Brock Shooting! ブロックくずし - Google Play の Android アプリ

 

f:id:sakura_bird1:20141008094444p:plain

最近はAndroidプログラミングもやっていますが、cocos2d-xもちょっと勉強しています。


Cocos2d-x: World’s #1 Open Source Game Development Platform

 

今年の2月くらいから

原宿cocos2d-xゲームアプリ開発者同盟

 という勉強会に参加させて頂いて勉強したりしていました。


原宿cocos2d-xゲームアプリ開発者同盟#33@AID : ATND

 

主催の椋梨さんの出す課題をこなしながら質問したりモクモクしたりしています。

何か自分のゲームを作ってリリースするということになり、ブロック崩しなら出来そうかなと思って作ってみました。

ミニゲームですが、cocos2d-xは初めてだったので結構試行錯誤を経てリリースしました。途中何度もサボったり間隔が空いてしまったりしてチンタラ作ってしまいました(;・∀・)

全体としてとても楽しかったです。ゲームの世界という別世界の扉が開かれたワクワク感とわずかなコードで実現できるアニメーションに感動しました。

もっとコーディングしたい!!!

 

なお、アプリ内で使用している可愛い画像は椋梨さんの開発グループである

テラシュールウェア様からご提供いただきました。

 

テラシュールウェア様のアプリはこちら

Terasurware - Google Play の Android アプリ

 

可愛い画像のおかげでぐっとアプリらしくなりました。この場をお借りして心より感謝申し上げます。

 

また、今回自分のアプリに初めて広告を貼ったのですが、そのあたりの実装は椋梨さんのコードをまるっとコピーさせていただきました。他にもコードを利用させて頂いている部分があり、とても助かりました。自分でやったらすごく時間がかかったと思います。

 

f:id:sakura_bird1:20141008111245p:plain

 

よかったらダウンロードしてみてくださいね。

Brock Shooting! ブロックくずし - Google Play の Android アプリ

 

cocos2d-x を使った開発

 cocos2d-xでは、c++,JavaScript,Luaなどの言語がサポートされていますが、私はc++で開発しています。JSだとアプリが大きくなる、Luaだと暗号化などしないとソースが見えてしまうなどの理由と、上記勉強会でもc++を推奨していたからです。

実は昨年


英語で学ぶプログラミング

という勉強会に参加してc++を少しだけ勉強していたということもありました。

(しかしこの勉強会では英語で四苦八苦してイマイチc++の方は勉強出来てなかったです(;◔ิд◔ิ))

 

OpenGLを使ったネイティブコードをAndroid開発で使用したのは初めてでしたが、やっぱり早いですね。SurfaceViewが中途半端に感じてしまいます。

でも、デバッグが難しいです。Javaのエラーログみたいに親切なものが出てこないのでひたすらプリントデバッグを入れまくって場所を特定したりしました。もっといい方法があるのかもしれませんが、まだ勉強ができていませんね。

cocos2d-xのバージョンは2.2.2です。現在3.X系がそろそろ主流になりそうなのでそっちもやってみたいです。

 

それにしても世の中にリリースされているすごいゲームを見るとため息がでます。なんでこんなにちゃんと 動いているんだろう、なんでこんなに複雑そうなことが出来るんだろう、と。

 

開発にあたって参考にした本はこちらです。

 

cocos2d-x入門

cocos2d-x入門

 

 cocos2d-x入門は何回も目を通しました。プログラミングはやったことがあるけどゲームを作ったことがなく、cocos2d-xも初めての人に向いていると思います。

なにしろ私は「スプライト」や「パーティクル」の意味すらわかりませんでしたから、この本を読み進める中で調べたことや覚えたことが本当に役に立ちました。

ブロック崩しゲームはこの本に出てくる内容の範囲でできています。

 

 

Cocos2d‐x開発のレシピ―iOS/Android対応

Cocos2d‐x開発のレシピ―iOS/Android対応

 

Cocos2d‐x開発のレシピ―iOS/Android対応はもうちょっと中級者向けでより実践的な内容になっています。

Coco2d-xを使うなら必ず知っておきたいことばかりです。こちらを2冊めに読んで良かったです。

 

アプリ作成中に利用したツール(上記の本にも載っています)

 

Xcode - IDE - Apple Developer

IDEXcodeを主に使用しました。Android 用に開発終盤に使ったEclipseよりずっと使いやすいです。

 

 


TexturePacker - Create Sprite Sheets for your game!

TexturePackerはテクスチャアトラス(スプライトシート)を簡単に作成できるツールです。テクスチャアトラスは複数の画像を1つの画像にまとめたもので、こちらをキャッシュしておくことによりメモリを効率的に利用することができ、表示速度の向上にも役立ちます。どこに画像があるかを指定するplistファイルも生成されます。

画像表示に利用しています。

TexturePackerの編集画面

f:id:sakura_bird1:20141008110705p:plain

 


Bitmap Font Generator for OSX - Glyph Designer

Glyph DesignerはMacのBitmapフォント作成ツールです。

ゲーム内で出てくる文字を作成しました。このゲームでは練習用ということもありアルファベット文字を使用していて日本語が出てきませんが、ちゃんと日本語も作成できます。

 

f:id:sakura_bird1:20141008110756p:plain

 

 

 そんなわけで、次のゲームは何を作ろうかなーと考えています。小さいアプリでも自分で全体を作ると本当に勉強になりますね。