描画による移動誤差

描画による移動誤差


ZGEでは大きく分けて3Dを使わない描画方法と3Dを利用した描画方法(3DT)の2種類が存在します。

その2種類の描画方法を同期させ移動すると、
わずかですが移動速度に小数点が発生した場合など、
移動中にわずかにブレる感じに見えたり、
停止した時に1ドットだけ位置がずれる症状が発生する事があるようです。

とくに8方向移動のような移動方向が多いものの場合、
移動速度に小数点が発生しないようにするのは難しいので、
誤差が気になる人は描画方法の指定に注意が必要してください。


String+Number 描画

String+Number 描画に関しては、
3DTと表記された3D機能を利用した描画方法と合わせた場合に、
移動速度に小数点が発生すると誤差が生じるようです。

文字と数字の表示ができる描画方法でとても便利なのですが、
セーブデータの数値表示の時など、
動的な表現をしたい場合にあまり見栄えがよくない事もあります。

数字を表示するだけなら42番(Number+SpBlend)と43番(Number+SpAddBlend)で対処する事ができる事と、
アニメーションを使えば文字の表示もできるので、
一応ですが対処する事が可能です。

ちなみにこの誤差の問題に関しては、
46番(Str+Num+SpBlend)と47番(Str+Num+SpAddBlend)でも同様の現象が見られます。


256_move

描画方法とは違いますが、
関数 256_move を使った場合に、
sync_move や get 関数での座標の取得で同期移動させると、
対象の移動速度に小数点が発生する場合、
停止した時に1ドットほどのずれが生じたり、
移動している時もわずかに1ドットずれる瞬間が生じる事があります。

原因や理由は判りませんが、
get で取得した座標を直接取得せずに、
1度通常変数(iなど)に取得してから改めて代入すると解消される事があるようです。



▲フレームが表示されない人はクリック