Buggy IF声明

时间:2014-01-18 20:56:45

标签: c# testing if-statement xna-4.0 operand

我有一个错误的IF声明。我试图检查触摸是否在某个区域内。然而,它似乎正在为精灵创建一个隐形触摸盒,它是一个永无止境的触摸盒,它正好在屏幕外。左侧和顶部区域工作正常,但右侧的X轴是错误的。这是我的IF声明。

if (tl.State == TouchLocationState.Pressed
    && tl.Position.X >= harePlayer.Position.X
    && tl.Position.Y >= harePlayer.Position.Y
    && harePlayer.Position.X <= (harePlayer.Position.X + 52)
    && tl.Position.Y <= (harePlayer.Position.Y + 50))

1 个答案:

答案 0 :(得分:5)

我冒昧地重新格式化您的代码,以避免问题中出现滚动条,并立即发现问题:

&& harePlayer.Position.X <= (harePlayer.Position.X + 52)

这部分永远是真实的。 (总是=除非你在阅读其中任何一个属性时得到一个新的(随机?)值)

将其更改为:

&& tl.Position.X <= (harePlayer.Position.X + 52)