こんばんは。
私用で少し間が空いてしまいました。
//そもそもここ見てる人いるんだろうか…とか不安になってきますが
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変換を行うのもありかもしれません。その方が望ましいです…まだそこまではしていませんが^^;