04-03 花火アプリ

[ご注意] emo-framework は恐らくもうメンテされないです

PointSprite の利用はあきらめました 😈
そのままでは modify が使えなさそう(?)で、動かすのが自分には難しすぎました 😳

なのでとりあえず emo-framework の sprite を使った花火アプリです!
今は 5 発までしか表示されないです。

音はつけたんですけどー
かなりガクガクになってしまい、実機で試しても厳しかったです 😯
音も圧縮しないとダメなようなので、音はとりあえず外しました。

今はまだ、タッチするとタッチした場所に花火が表示されるだけです。
色はランダムで、花火 1 つが、30 個の sprite で作られていて、外枠以外はランダムに広がっていく感じです。


利用させていただいているもの
emo-framework – Android-Examples の modifier_multiple.nut
武蔵システム – 衡山毛筆フォント
東京デート
vector fresh

花火をもっと綺麗にしてー
種類を増やしてー
って、感じでやっていきます 😀

04-02 emo.PointSprite

[ご注意] emo-framework は恐らくもうメンテされないです

emo-framework に出会ってから、面白いのでいろいろ試しています。
今は、穴が開くほど、ドキュメント、API Reference、サンプルプログラムを見ています 😀
ケアレスミスらしきものもいくつかあったので、少しでもお役に立てればとまとめて追って報告できるといいなーと思ってる今日この頃です。

今は、花火を描画したくてー
サンプルプログラムを改造した程度のもので、一応できたのですが、花火の一つ一つの玉を全部 sprite にしているためやっぱり動作が重いです。
(emo-framework じゃなく、自分の作り方と android のせいだと思っています)

でも、どーしても花火を 1 枚の画像にしたくないので、いろいろ調べてみたら emo.PointSprite なるものを発見!

でも、自分にはまだ emo.PointSprite を使った表示すらできてないのでー
いろいろ悪戦苦闘中です。
でも、やっと調べ方がわかってきた(?)ぽいのでメモをしておきました。

1. wiki を見る
 http://code.google.com/p/emo-framework/wiki/PointSprite
2. emo-framework の PointSprite のソースを見る
 http://emo-framework.googlecode.com/svn/trunk/Emo-Android/jni/emo/Drawable.cpp

 

下のようになっていたので、たぶん onDrawFrame ないで使えば表示される!(んじゃないかと思っています 🙂

void PointDrawable::onDrawFrame() {

 

↑ 案の定違うようです 😳
サンプルを作って実行させると、↓のようなエラーが大量に出てしまいます 😯
“E/libEGL(478): called unimplemented OpenGL ES API”

API が未実装だったり、OpenGL 11 にすると直ったりするようなのですが、詳細の調べ方から勉強中です。
とりあえず、Android エミュレーターの “GPU emulation”, “yes” では直りませんでした。
エラーのサンプル(sprites.show(); をなくせばエラーは出ないのですが、画面には何も描画されないです 😥

実行できました!
それぞれ “GPU emulation”, “yes” にしたところ Android 4.1 で実行できました 🙂
・Android 2.3.3 → ダメ
・Android 4.0.3 → ダメ(Windows 7 なのでエミュ自体が起動しませんでした 🙁
・Android 4.1 → OK

“GPU emulation”, “yes” の設定方法
 1. Android Virtual Device Manager(エミュを起動するウィンドウ)
 2. [Edit] → Hardware の [New] ボタン
 3. Property:”GPU emulation” → [OK]
 4. “GPU emulation” の Value をクリック → “Yes”
 5. [Edit AVD] ボタン

class Main {
  function onLoad() {
    local points = [
      emo.Vec2(0, 0), emo.Vec2(50, 50), emo.Vec2(100, 100)
    ];
    local sprites = emo.PointSprite("A.png");
    sprites.setPoints(points);
    sprites.hide();
    sprites.load();
    sprites.show();  // ← たぶんここがエラー
  }
}

function emo::onLoad() {
    emo.Stage().load(Main());
}

04-01 emo-framework

[ご注意] emo-framework は恐らくもうメンテされないです

emo-framework 自分にはめっちゃいいです!
iOS と Android の両方に対応できるそうです。
日本語の入門書をよみつつ、example を見たり触ったりするだけで、いろいろ理解できるように作られています 🙂
開発してくださっている方は、日本人ですしー

おかげ様で、ゲームつくりがめちゃめちゃ身近になりました 🙂

ありがとうございます。

emo-framework
http://www.emo-framework.com/

入門書(無料)
http://d.hatena.ne.jp/infosia/20111012/1318377378

公式サイトのドキュメントは少し古いみたいなので wiki を参考にした方がいいみたいです。
http://code.google.com/p/emo-framework/wiki/APIReference