cocos2d-x:弾幕の器のAndroid5対応

今週は新作の制作が進んでいません…。
弾幕の器がAndroid5で落ちる原因と格闘していました。
 

Android5に対応させるために格闘中

前回cocos2d-xをv3.6にアップしたが状況は改善していない。
メニューでは問題ないがゲーム画面には射る時に落ちる。

以前コメントで☆5つを付けてくれていた方が、無双モード搭載後にゲームが落ちるようになったと報告があったこと思い出す。

ゲーム開始時に敵艦のデータをstring型のvectorで渡す部分が怪しい?
int型の配列で渡す様に変更してみた。

————————————–
注文していたAndroid5の検証機が届く
————————————–

int型の配列でもゲーム画面に入る時に落ちる。

eclipseでmediaPlayerについて「should have subtitle controller..」という
エラーがでているのを確認。

cocos2d-xのv3.2まではクラッシュの基となるエラーだけどv3.3以降では
クラッシュしないようになっておりクラッシュの原因ではないようだ。
※エラーは動画の字幕(subtitle)についてでサウンドデータには無関係らしい。

しかし念のため、サウンド関連を全てコメントアウト

やはりゲーム画面に入る時に落ちる。落ちる原因はサウンド周りではない。

色々検証して落ちる敵と落ちない敵がいることに気が付く。
必ず落ちるのは雨型の五月雨。これは問題解決の糸口だ!!

五月雨のデータを他と書き換えると落ちなかった。
しかし何回か試すとたまに落ちる。

—————————————
データの読込が失敗することが落ちる原因と確信
—————————————

データの読込はgetFileDateを利用しており。これでiOSとAndroid4までは問題なし
→参考:cocos2d-xでcsvデータを読み込む

しかしAndroid5で読み込んだデータを確認すると。正常に読み込む時もあれば読み込めない時もある。データが欠落したり繰り返されたり無秩序で法則が分からない…。

「Anrdoid5ではデータが圧縮され、それによって正常に読み込めない」的なことを書いているサイトを発見(メモし忘れる)。そのサイトには対応策は記述されていなかった。

他の方法で読み込むことを考える。v3.4で新たにテキストの読込に特化したメソッドが追加されているのを発見。→:cocos2d-x公式「getStringFromFile

これを利用したら落ちなくなった!
たぶん、これで解決。

現在色々チェック中。
問題が無ければ来週早々にAndroid5対応版をリリース
 
 

audioEngine

クラッシュの原因がサウンドと疑っていた時に発見した新しい機能。v3.4から追加されたaudioEngineでは高度な音源の操作ができるようです。
→参考;cocos2d-x公式「AudioEngine Class
→参考:AudioEngineを利用した管理クラスの作成
 
 

iOS

iOSでも音楽関連でメモ。iOS7以降ではアプリを起動するとiTunesなどの音楽は停止してしまう。これを解除するにはinfo.plistを編集する必要がある。
→参考:BGMと効果音を鳴らしつつ音楽を再生する方法
 
 
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


7 + = 十二


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>