1

まず、単純なクラスがありLineます。

public class Line
{
    public Vector2 P1 = Vector2.Zero;
    public Vector2 P2 = Vector2.Zero;

    public Line(Vector2 p1, Vector2 p2)
    {
        P1 = p1;
        P2 = p2;
    }
}

ゲーム内のすべての行のリストと、四角形を囲むスプライト。この長方形の下の中央が真上にある線の点より下にあるかどうかを調べ、その線上の点に更新しようとしています。この図は、私の言いたいことを理解するのに役立つかもしれません。 ここに画像の説明を入力

長方形は下に移動し、交点を通過し、それに応じて更新されます。

これについてどうやって行くことができるかについてのアイデアはありますか?現在上にある線を簡単に見つけることができますが、上にある線上のポイントを取得し、そのポイントを超えないようにする方法がわかりません。

コード サンプルまたはリファレンスは素晴らしいでしょう。

4

1 に答える 1

0

線の端点の位置がわかっている場合、その線の方程式を y = mx + c の形式で取得するのは非常に簡単です。次に、その長方形の底の中点を見つける必要があります。XNA の長方形が高さ、幅、中心点の位置を示しているので、これも簡単です。そこから、長方形の中心点の x 座標を取得し、y = mx + c 方程式を使用して、その点での線の y 座標を計算します。次に、長方形の下部の中心がその点より下にあるかどうかを確認する必要があります。そうである場合は、長方形の高さの値を使用して、その y 座標の上に長方形を配置する必要がある距離を計算します。この線。十分に単純でなければなりません。

于 2013-01-30T08:59:55.783 に答える