Android OpenGLのパフォーマンス

Posted in Android, Programing on 6月 29th, 2011 by admin

OpenGLを使ってプログラム作成中なわけですが、再び問題が発生してしまいました。

背景を表示しようと、用意したPNG画像(512×1024)を画面全体に表示した板状ポリゴンにテクスチャとして貼り付けたところ、画面の更新頻度が落ちてしまいました。

(上の46が画面更新fps、下の29はゲームスレッド更新fps)
Read more »

GLSurfaceViewでEGL_BAD_ALLOC(eglSwapBuffers)

Posted in Android, Programing on 6月 28th, 2011 by admin

GLSurfaceViewの後始末でハマったのでメモ。

AndroidでOpenGLする場合、
GLSurfaceView.Rendererを継承したレンダラークラスを作り、GLSurfaceViewにsetRendererすると思います。

ここまでで満足してしまえばそれまでなのですが、ビューのタッチに反応しようとする場合、さらに、GLSurfaceViewを継承して独自のビューを作成します。

この状態では何にも問題ないのですが、GLSurfaceViewを継承したクラスで、surfaceDestroyedをオーバーライドしようとしたときに、謎のエラーが発生しました。

実機(X06HT HTC Desire)で実行してみたところ、アプリ実行中にホームボタンでホームに戻ろうとすると、強制終了してしまうのです。
(エミュレータでの実行ではなぜか問題なし)

ddmsで確認してみると、

06-28 17:33:36.602: ERROR/AndroidRuntime(28603): java.lang.RuntimeException: eglSwapBuffers failed: EGL_BAD_ALLOC

と出ています。

結局は、GLSurfaceViewを継承したクラスのsurfaceDestroyedで、super.surfaceDestroyed(holder);をコールしていなかったのが原因でした。

どうも、この中でGLThreadの停止処理などが行われていて、これが呼ばれないためにサーフェースが破棄されてもレンダリングしようとし、エラーとなっていたようです。

GLSurfaceViewを継承したクラスのsurfaceDestroyedで本来やりたかった処理を行った後、super.surfaceDestroyed(holder)をコールしてやることで、めでたく解決できました。

う~ん、疲れた・・・

Google版「いいね」+1ボタンをつけてみました。

Posted in Diary on 6月 28th, 2011 by admin

何気なくAdSence管理画面を見ていたら、「ページに+1ボタンを追加しよう!」とあったので、
「はいそうですか!」と付けてみました。「+1ボタン」
Read more »

AndroidでOpenGL(テクスチャアニメーション)

Posted in Android, Programing on 6月 27th, 2011 by admin

2Dゲームでは、キャラクターの動きは、実際の表示位置を動かす方法と、パラパラ漫画のように、複数の画像を切り替えることによって動いているように見せかける方法とを組み合わせて表現します。
(常識ですね)

今回、ゲームを作成するにあたってOpenGLを2D的に使うと決めたのはいいのですが、悩んだのはこのパラパラアニメーションでした。
Read more »

Android実機でOpenGL ES(テクスチャが表示されない)

Posted in Android, Programing on 6月 27th, 2011 by admin

今回作成するゲームでは、OpenGLを2Dで使用し、画面を描画しようとしています。

そのための実証コードを書いていたのですが・・・
ハマりました。

まずは、エミュレータ

Read more »

[AdMob]AdViewが表示されない!?

Posted in Android, Programing on 6月 23rd, 2011 by admin

先日から開始した新ゲーム作成ですが・・・
・とりあえずタイトル画面から作ろうかな
→前回のSpaceDefenderみたいにタイトル画面に広告を入れてみよう
→そういえば、AdMobSDKが更新されているな・・・

ということで、最新版AdMobSDKを使ってみました。

結果なのですが、以前のAdMobSDKから比べると、はるかに導入が簡単になっていました。
Read more »

「日本Androidの会」茨城支部

Posted in Android, Diary on 6月 23rd, 2011 by admin

日本Androidの会に、茨城支部が発足するそうです。

管理人は、現在茨城県水戸市在住の上、大学時代に埼玉に住んでいた以外は、生粋の茨城人です。

茨城県におけるAndroidの普及促進を目指すのを活動方針としておられるようで、Android大好き茨城人としては、とても楽しみにしています。

7/10(日)に、茨城支部キックオフが開催されるとのことですので、参加登録してみました。
どんな展開があるのか、非常に楽しみです。

OpenGLのテスト

Posted in Android, Programing on 6月 10th, 2011 by admin

さて、新しくプログラムを作るにあたって、今まで何もしていなかったわけではなく、OpenGLのテストなどしておりました。

AndroidでOpenGLをする場合、というか、OpenGLを使おうとした場合、最初につまずくのはモデルデータの準備ではないでしょうか?

この問題をクリアするために、Wavefront OBJファイルからのコンバーターを作ってみました。

Wavefront OBJファイルについては、3D方面に知識を持つ人ならば、説明の必要もないと思いますが、多くの3Dモデリングソフトなどでエクスポート/インポートが可能なファイル形式です。
Read more »

Androidでゲームを作ろう! 再開です。

Posted in Android, Programing on 6月 10th, 2011 by admin

ご無沙汰してます。

どうにもネタがないのと、本業が忙しかったために、更新をずっとさぼっていたのですが、「Androidでゲームを作ろう!」再開です。

今日は、リーソスの作成を主にやってました。

成果はコレ!

タイトルがまたベタなのは置いといて、前回の反省から、マーケットで目立つために必要な、プロモーション画像から作成です。

ホントはプロモーション動画も作りたいところですが、個人ではちょっときついですね。

AdMobSDKダウンロードのため、AdMobへも登録してしまったので、なんとか作成完了したいところです。

前回Space Defenderの時は、ゲーム画面にSurfaceViewを使用したのですが、速度で泣いたので、今回はGLSurfaceViewを使って2D的にOpenGLを使ってみようかと思います。