環境によって再生速度が違う問題から内部処理を見直す
HSP3.1をつかってFormationPlayerは開発されているのですが、中でawait命令を使って画面の書き換え頻度をコントロールしています。
これで、ソフトの実行環境が違っていても再生速度を一定にするようにしていました。
が・・・
これまでの開発環境と新しい開発環境で速度を比べてみた結果、明らかに古い開発環境で実行したほうが再生速度が早いということが判明しました。
新しいほうが当然スペックが上(しかも桁違いに)であるにもかかわらず、この現象が起きているということは、これはOSの違いが原因かもしれません。
OSの違いから、タイマーの精度の違いが生じている可能性については要検証です。
HSPでは直接構造体を作ることができませんから、配列変数で代用するのが一般的なようです。
FormationPlayerでは各駒(プレーヤ)の座標や名前、スキップの有無などの情報を文字列配列変数で格納しています。
つまり、座標関係を計算する際、文字列の座標を実数の座標に変換しているのです。
しかも、各駒ごと、各フレームごと、毎回変換し、毎回変位量を計算しています。
ということで、今回はそういった無駄を見直したいと思っております。編集モードから通常モードに戻ったときに変位量の計算をまとめて行い、別の配列変数に格納する方法を考えております。さらに駒に関わる情報は文字列配列、座標は実数配列、変位量も実数配列という3本立てに分割する必要もあります。
果たしてこれで処理が軽くなったりするのかはわかりません。もしかしたらこういった作業をするよりも新機能(例えばページごとにカウント数を変えるとか)を追加したほうがいいのかもしれません。いかがなものでしょうか。
No comments yet. Be the first.
Leave a reply