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();
    }
 }

Hitbox 是一个被定义为整个屏幕的矩形。

4

2 回答 2

1

您不能使用碰撞检测来为您执行此操作吗?

鉴于您有前一个抽头(球)的位置和新抽头的位置,您可以计算两个球是否重叠(它们的中心之间的距离小于球直径),甚至可以通过移动来补偿重叠球到前一个球旁边的有效位置。

您可能已经在跟踪所有球的位置,因此您可以扩展上述逻辑,将即将生成的球位置与您的 Hitbox 矩形内的所有球进行比较,并确保它们不重叠。

我的 2 美分 :)

于 2012-11-23T00:43:13.537 回答
0

我解决了。我用我的触摸位置制作了一个小矩形。然后我检查它是否击中了我的新矩形。如果没有,请生成一个球。:D

于 2012-11-23T00:46:32.577 回答