XNA:mouseState的位置是否重要?

时间:2014-10-18 00:03:45

标签: xna c#

为了从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;
        }

1 个答案:

答案 0 :(得分:1)

在第一个示例中,您在FOREACH循环之外进行了mouseState更新。这使得FOREACH循环中的所有内容都在mouseState更新之前执行。

在你的第二个例子中,你更新了FOREACH循环中的mouseState,这很奇怪,但是如果你这样做了,在第一个循环项之后,第二个if语句会失败,你就不会“做某事”。