Nameless Element Lab このページをアンテナに追加 RSSフィード

・アイデア監視: [ニコニコミュージック] [MMLプレビュー] [ウクレレ+MML]
A・S・C(ソース&Exe)
・気になるキーワード: [ゲームヘル] [FM音源] [MML] [武侠]
・グループ日記: [ワールド日記] [夢日記] [DS-10日記]

Sun, 16 October 2011 [Javascript]Titanium Mobile でRPG開発進捗30日目

[]Titanium Mobile でRPG開発進捗30日目

f:id:wang-zhi:20111016231646p:image:right:w200

今日で30日、一ヶ月が経ちました。

それなりに遊べるものならすぐ出来ると

甘い気持ちで始めたものの

RPGはやっぱりやることが多いです。


さて、本日の進捗としては

  1. が出るようになったよ
  2. 入力待ち処理

あたりでしょうか。


まず、の出現ですがこちらは出すだけなら

そんなに問題じゃないです。

何故か、ダメージのエフェクト演出を

先に作り始めたんですが、

こいつがなかなか難がある実装となりました。

やってることとしては2つのアニメオブジェクト

作り出し、交互に呼び出すというもの。

かるーく概要を書くと


var a1 = createAnimation();
var a2 = createAnimation();
a1.addEventListener("complete", function(){
    view.animate(a2);
});
a2.addEventListener("complete", function(){
    view.animate(a1);
});
view.animation(a1);

こんな感じ。これはシンプルな書き方で

これをグローバル変数と絡めると偉いことに。

なんとか逃げ道を付けられたので良かったです。解決。


次に入力待ち処理ですが、こちらも独特な手段を使いました。

Titanium Mobile は基本的にイベントドリブン型なので

イベントが無ければ何も起きないのです。

なので、一旦流れを途切れさせてしまうと、次はイベントが

何らかの形で発生しないと処理できない。

ということで、入力待ち処理の引数にコールバック関数を持ってくことに。

入力待ちには画面サイズのラベルを全面に表示してタップ待ち


// XXはグローバルアクセス用のオブジェクト
inputWait:function (func) {
    var overwrap = Ti.UI.createLabel({text:'▼ タップしてください ▼', width:320, height:480, zIndex:10000});
    overwrap.addEventListener('click', function(){
        XX.view.remove(overwrap);
        (func)();
    });
    this.view.add(overwrap);
},

こんな感じでコールバック関数を実行できるようです。

少し横着な感じですけど、もっと綺麗に書ける方法があるなら教えて欲しいです。

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

トラックバック - http://d.hatena.ne.jp/wang-zhi/20111016/1318776199