Hatena::ブログ(Diary)

Android でいろいろやるよ!

2012-03-01

シューティングゲームを作ってみました!

最近、私が作った Titanium Mobile 用のゲームエンジンモジュール QuickTiGame2d を使って頂ける人が増えてきているようで、とっても嬉しい限りです!

中でも、最初の第一歩としてシューティングゲームを作りたいというケースは多いみたいです。シューティングゲームって速度面もそうですが数学的素養とか、色々試される部分がありますしね〜。テーマとしてはすごく面白いと思います。



ということで私も刺激を受けて、QuickTiGame2d のサンプルとしてシューティングゲームを作ってみることにしました。Titanium Mobile のゲームエンジンとして、こういったジャンルは苦手といえる分野だと思いますが、ベンチマークも兼ねて作ってみました。動作画面はこんな感じ!

D

これで、JavaScript のソースが 250 行ぐらいです。
すばらしいですね!

画面にタッチすると、自機がその方向に向かって動きます。弾は自動的に発射されます。自機や雲など、全ての画像素材は Tyrian というゲームのものを使ってます。すばらしい素材です!

動作速度は、一年前の iPod touch でもストレスなく動きますが、ギリギリ、かな?もちろん Android でも動きますが iOS と比べるとやっぱり遅いです。この手のゲームは端末の性能によって体感速度が大きく変わってきますので、Android は Android 向けのチューニングが必要かもしれませんね。

このゲームのソースは全て公開しています。以下からダウンロードしてください!
http://code.google.com/p/quicktigame2d/source/browse/#git%2FQuickTiShooter

追記


上で iPod touch でギリギリ、Android では遅いと書きましたが、そんなことなかったです!どうも JavaScript 側のロジックの書き方が悪くて無駄なループが回っていたようで・・・orz 駄目な部分は修正しましたので、意外とサクサク動きますよ〜!

さらに追記


QuickTiGame2d は疑似 3D 表示にも対応しているので、試しに使ってみました。ゲーム開始後10秒後ぐらいから 3D 表示になります。自分で言うのも何ですが、面白いですね〜これ!

D

ちなみにこの部分のソースコードは公開してません。やっていることはこれとほぼ同じなので、気になる方はトライしてみてください〜

tommy470tommy470 2012/03/10 21:22 はじめまして、tommyですハンドルネームで失礼いたします。

私現在AndroidでOpenGLを使用した
ゲームを開発しようと勉強をしております。

その際infosia様が作成しております
e3roidを見つけまして、もしよろしければ
質問に答えていただけたらと思いまして
コメントさせていただきました。

今使用する画像のサイズの問題で困っております。

OpenGlは2のべき乗のサイズでなければ
テクスチャとして使用できませんが
e3roidでは使用できます。
これはどのように実現しているのでしょうか?

今私が考えている実現方法は
?画像のサイズを2のべき乗とする。
?読み込んだ後使用できないサイズの場合は
リサイズする。
?2のべき乗のサイズの空の領域を用意しておいて
そこに描画したのちテクスチャとして
使用する。

上記3つ考えておりますが
もう少しスマートな方法があればと思っており
もし宜しければお力添え願えないでしょうか?

よろしくお願いいたします。

E-Mail:tommy_hcs@yahoo.co.jp

infosiainfosia 2012/03/10 23:12 3番めの方法です。e3roid も emo-framework もソースは全て公開していますので、参考にしてください。

http://code.google.com/p/e3roid/source/browse/trunk/E3roid/src/com/e3roid/drawable/texture/Texture.java#70

http://code.google.com/p/emo-framework/source/browse/trunk/Emo-Android/jni/emo/Drawable.cpp#378

tommy470tommy470 2012/03/12 13:02 ご返答ありがとうございます。

暫くソースとにらめっこ致します。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/infosia/20120301/1330566229