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是一个矩形,定义为整个屏幕。
答案 0 :(得分:1)
您不能使用碰撞检测为您执行此操作吗?
鉴于你有前一个水龙头(球)的位置和新水龙头的位置,你可以计算两个球是否重叠(它们的中心之间的距离小于球直径),如果你想要,甚至可以补偿重叠将球移到前一球旁边的有效位置。
你可能已经跟踪了所有的球位置,所以你可以扩展上面的逻辑来比较即将产生的球位置和已经在Hitbox矩形内的所有球,并确保它们不重叠。
我的2美分:)
答案 1 :(得分:0)
我解决了。我用触摸位置制作了一个小矩形。然后我检查它是否碰到了我的新矩形。如果没有,产生一个球。 :d