不想点击相同的位置

时间:2012-11-22 23:50:51

标签: c# windows-phone-7 xna touch

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是一个矩形,定义为整个屏幕。

2 个答案:

答案 0 :(得分:1)

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

鉴于你有前一个水龙头(球)的位置和新水龙头的位置,你可以计算两个球是否重叠(它们的中心之间的距离小于球直径),如果你想要,甚至可以补偿重叠将球移到前一球旁边的有效位置。

你可能已经跟踪了所有的球位置,所以你可以扩展上面的逻辑来比较即将产生的球位置和已经在Hitbox矩形内的所有球,并确保它们不重叠。

我的2美分:)

答案 1 :(得分:0)

我解决了。我用触摸位置制作了一个小矩形。然后我检查它是否碰到了我的新矩形。如果没有,产生一个球。 :d