こんばんは。


私用で少し間が空いてしまいました。


//そもそもここ見てる人いるんだろうか…とか不安になってきますが


MIDPは十分に将来性のあるプラットフォームだと思いますので、開発を続けていきましょう!


さて、今日も前回の続きでイベントの処理です。


今やスクリプトの導入によるロジックとデータの分離は割と頻繁に採用されていると思いますが、スクリプト内においてもデータは開始時に読み込んでおいた方がいい場合は多いです。


特にマップデータ・グラフィックはマップ及びイベントと密接に関わってきますので、スクリプトファイル読み込み時にまとめて読み込んでおいた方が”読み込み忘れ”が起き難いです。可読性が上がりデバッグもしやすいですしね。


データ定義といっても、スクリプト読みこみの段階で「キーワード検索→逐次行処理」を繰り返すだけで簡単に実装できます。新しい関数等を導入する必要はありません(関数にまとめた方が見やすいとは思いますが)。


では、実際の逐次行処理についてです。基本は文字と数字の組み合わせなので、String.equals関数とInteger.parseInt関数で地道に処理していくだけです。問題として起きうるのは、スペルミス、変換ミス、引数の個数を間違えたことによるnull参照くらいでしょうか。


一例としては、こんな感じです。


while(reading){

  String[] temp = qf.readLine();

  if(temp[0].equals("window")){

    waiting_lines = split(temp[1],"<br>");

    adjustDisplayLines();

    dialogwindow = true;

    reading = false;

    keywait = KEY_FIRE;

  }

  else if(temp[0].equals("EndDif")){

    reading = false;

  }

……


更にパフォーマンスを向上させるには、コンパイル前の処理で、命令と数字の1:1変換を行うのもありかもしれません。その方が望ましいです…まだそこまではしていませんが^^;