ちゃすぴの日記

日々つらつら

Cocos2d-xでクソゲーを作った

そんなことよりGJ部りぴーとでぃすくを早く見たい!!

 

以下の記事を読みました.

【実際に作ってみよう!】初心者が1ヶ月でiOS・Android対応のクソゲームアプリを作るための手順 - あのねノート。

 

これなら簡単にゲームが作れるのでは?

ストアに公開してお金持ちになれるのでは?

などと考えて制作を始めました.

 

まずは製作した海未ちゃんの変顔ゲームの動画をどうぞ.

 

ことりちゃんになれた気がした

以下に自分がハマった点,やったことなどを挙げます.

 

 

1,環境構築

上記の参考サイト通りに環境を構築.HelloWorldが出ると思いきやエラー.

原因は環境変数のPathにw32texが入っていたこと.

なぜかcygwin64と衝突していたのでw32texのパスを消去.

TeX環境を導入していたからか.

 

これでHelloWorldが出ると思いきやまたエラー.

asset/fontディレクトリが参照できないとかうんたらかんたら.

原因はアクセス権限の関係で,Cocos2d-x内のprojectディレクトリのアクセス権限を変更.更にEclipseを管理者権限で起動.詳しくは

初回起動時のassets\fonts\Marker Felt.ttf': Zip add failed - 文系の俺がcocos2dxを使ってみた

 

実行してようやくHelloWorldが出た.

2,Doge Deffenceを見てみる

背景色を付けるときにCCLayerColorを使用したが,Eclipse上でエラーが出てコンパイルできない.

無理矢理だが,コード解析でこのエラーを無視させてコンパイルしたら起動した.

Property->C/C++ General-> Code Analysus
'Abstract class cannot...' Unchecked
参考:CCLayerColor issue | Cocos2d-x
 
SimpleAudioEngine.hがインクルードされない
インクルードファイルを見る場所がcocos2d-x-2.2.3/cocos2dxなのだが
SimpleAudioEngine.hはcocos2d-x-2.2.3/CocosDenshion/includeにある.
include/SimpleAudioEngine.hとExport.hをClassディレクトリにコピー.
それと,CocosDenshion/Android/SimpleAudioEngine.cppもコピー.
これで解決.しかしもっとスマートな方法が絶対にある.
 
それ以外にハマることは無かったがプログラムを見ても,どのように動いているかわからなかった.

3,うみちゃんクソゲー

トランプをタップすると悲しみ喜びどちらかの画像を出す.

上にフリックするとあの画像を出す.

以上.

 

Cocos2d-xでは,タッチの始まり,移動中,離したときの座標しか取れないので

フリック判定は自分で書いた.

このページを参考にタッチの座標取得を学んだ.

[cocos2d-x 2.1.4]タッチイベントの発火タイミングを見てみる(ccTouchBegan, ccTouchMoved, ccTouchEnded)|めっとぼ

 

スタートのアニメーション

動画を再生するクラスは用意されていなかったのでゴリ押しした.

音声再生→[画像ファイル表示→消去→次のコマ表示→繰り返し]

と,パラパラ漫画で対応.少しでも処理落ちすると音声がズレる.

元動画を30fpsで取得したので,2フレームに1回,コマを表示させる.

HelloWorld::updateは1フレームに1回呼び出されるので利用した.

オブジェクトの削除は

CCSprite *sprite;
sprite->removeFromAarentAndCleanup(true);
 

ただし,処理が非常に重くなり必ず処理落ちを起こす残念な結果になってしまった.

画像を全てプリロードしておけばマシになると思う.現状は画像のロードを一々している.

 ※Sourceディレクトリに他のディレクトリを追加したらアクセス権限を一々変えないとエラーを吐く模様.アニメーションの画像ディレクトリを作成したときにハマった 

文字ラベル

一番上の参考サイトでも書いてあるように,CCLabelTTIを使うと処理が重くなる.

半信半疑だったが実際にCCLabelTTIとCCLabelBMFontではスタートのアニメーションの処理時に大きな影響を与えた.

少し面倒だとは思うがCCLabelBMFontを使った方が良いみたい.

ビットマップフォントの作成方法は以下のサイトを参考にした.

BMFont(Bitmap Font Generator) で NGUI 向けのビットマップフォントを作る方法 - 強火で進め

BMFontでアルファチャンネルを設定しているのに透明化されなかったのでGimpで加工した.一応手順を書いておく.

画像→モード→RGB
色→色を透明度に

4,おわりに

手軽にゲームが作れる時代らしいです.

参考にしたwebページが多く,したい処理をググれば何かしら出てくるので,他力本願で深く考えなくても形にはなります.

英語が読めれば海外のフォーラムが見られて便利なんだけど・・・・・・

次はオリジナルのゲームを作ってgoogleplayで公開したいなぁ.