为了从MouseState获得单击响应,我使用此行。
currentMouseState.LeftButton == ButtonState.Pressed && oldMouseState.LeftButton == ButtonState.Released)
在方法结束时,我有这一行设置鼠标状态。
oldMouseState = currentMouseState;
我的问题是,在具有多个循环的方法中,上述行的位置是否重要?是这样的:
foreach (blah blah in blahs)
{
if (something is something)
{
if (currentMouseState.LeftButton == ButtonState.Pressed && oldMouseState.LeftButton == ButtonState.Released)
{
do something
}
}
}oldMouseState = currentMouseState;
与此不同?
foreach (blah blah in blahs)
{
if (something is something)
{
if (currentMouseState.LeftButton == ButtonState.Pressed && oldMouseState.LeftButton == ButtonState.Released)
{
do something
}
}oldMouseState = currentMouseState;
}
答案 0 :(得分:1)
在第一个示例中,您在FOREACH循环之外进行了mouseState更新。这使得FOREACH循环中的所有内容都在mouseState更新之前执行。
在你的第二个例子中,你更新了FOREACH循环中的mouseState,这很奇怪,但是如果你这样做了,在第一个循环项之后,第二个if语句会失败,你就不会“做某事”。