0

Xna wp7 ゲーム.

現時点では、このコードにより、タップするたびにボールをスポーンできます。

私が欲しいのは、ユーザーが同じ位置をタップできないようにすることです。つまり、彼に同じ位置でスパムを送信しないように強制します。

foreach (TouchLocation location in TouchPanel.GetState())
{
    TouchLocation prevLocation;
    bool prevLocationAvailable = location.TryGetPreviousLocation(out prevLocation);

    if (location.State == TouchLocationState.Moved && prevLocation.State != TouchLocationState.Moved)
    {
        if (hitbox.Contains((int)location.Position.X, (int)location.Position.Y))
          releaseBalls();
    }
 }

ヒットボックスは、画面全体として定義された長方形です。

4

2 に答える 2

1

衝突検出を使用してこれを行うことはできませんか?

前のタップ (ボール) の位置と新しいタップの位置があれば、2 つのボールが重なり合っているかどうかを計算でき (中心間の距離はボールの直径よりも小さい)、必要に応じて、前のボールのすぐ隣の有効な位置にボールを移動します。

おそらくすべてのボールの位置を既に追跡しているので、上記のロジックを拡張して、スポーンしようとしているボールの位置を、ヒットボックスの長方形内に既にあるすべてのボールと比較し、それらが重ならないようにすることができます。

私の2セント:)

于 2012-11-23T00:43:13.537 に答える
0

解決しました。タッチ位置で小さな長方形を作成しました。次に、新しい長方形に当たるかどうかを確認しました。そうでない場合は、ボールをスポーンします。:D

于 2012-11-23T00:46:32.577 に答える