3

JavaScript でファイナル ファンタジー タクティクス スタイルのワールド マップ エンジンを構築できるかどうかを調べようとして、インターネットを検索していました。マップとポイントの位置は単純ですが、スプライトがそのパスに沿って歩くとは限らないポイント間のパスをどのように作成できるのか、まだ疑問に思っています。

FFT マップ http://www.vintagevideogamer.net/wp-content/uploads/2012/04/world_map.jpg

そのスタイルのマッピングが何と呼ばれているか知っている人はいますか? (ウィキペディアには用語がありませんでした)

または、そのようなプログラムの既存の例はありますか?

Canvas または Native JS を使用して試してみることを検討しています。

4

1 に答える 1

0

このようなパスは、相対座標を持つ一連の線分としてエンコードできます。次のようなパスが必要だとします。

|
\ _

各線は10ピクセルです。これを線分のjavascript配列としてエンコードできます(そのセグメントをトラバースするのにかかる秒数またはミリ秒数を示す期間を使用)。

[
    {"start_x":0,"start_y":0,"stop_x":0,"stop_y":10,"duration":2},
    {"start_x":0,"start_y":10,"stop_x":10,"stop_y":20,"duration":3},
    {"start_x":10,"start_y":20,"stop_x":20,"stop_y":20,"duration":2}
]

次に、時間の見積もりを使用して、セグメントの開始と終了の間の中間点を見つけます。現在のオフセットは次のようになります。

var pct_complete = elapsed_time / line_segment.duration,
    x_diff = (line_segment.stop_x - line_segment.start_x),
    y_diff = (line_segment.stop_y - line_segment.start_y),
    render_x = line_segment.start_x + (x_diff * pct_complete),
    render_y = line_segment.start_y + (y_diff * pct_complete);

ここで、lapsed_timeは、セグメントを開始してからの時間です。前述したように、相対座標を使用すると、ワールド内のパスの位置と画面のオフセットに合わせてrender_x/yを調整する必要があります。

よりスムーズなターンには、より小さな線分を使用してください。

于 2013-01-08T21:57:48.777 に答える