繁体   English   中英

使用鼠标滚轮进行xna缩放

[英]xna zoom using mouse scroll wheel

如何使用鼠标滚轮进行缩放,我试试这个

        if (currentMouseState.ScrollWheelValue < originalMouseState.ScrollWheelValue)
        {
            cameraPosition += new Vector3(0, -1, 0);
            UpdateViewMatrix();
            currentMouseState.ScrollWheelValue.Equals(0);
        }
        if (currentMouseState.ScrollWheelValue > originalMouseState.ScrollWheelValue)
        {
            cameraPosition += new Vector3(0, 1, 0);
            UpdateViewMatrix();
            currentMouseState.ScrollWheelValue.Equals(0);
        }

但即使我滚动一次,我仍然继续放大,我对XNA有点新意。 请帮忙。

ScrollWheelValue获取自游戏启动以来的累积鼠标滚轮值,因此,每次获取该值时,都需要将该值复制到变量中,以便在下一个周期进行比较。

而且,你不能设置ScrollWheelValue ,这一行是错误的:

currentMouseState.ScrollWheelValue.Equals(0);

我认为您的想法是将其值设置为0,但是该指令将其值与0进行比较,并为您提供布尔值。

编辑:
你应该做这样的事情:

声明一个全局变量

private int previousScrollValue;

并在Initialize方法中将其设置为:

previousScrollValue = originalMouseState.ScrollWheelValue;

然后编辑您的代码:

if (currentMouseState.ScrollWheelValue < previousScrollValue)
{
    cameraPosition += new Vector3(0, -1, 0);
    UpdateViewMatrix();
}
else if (currentMouseState.ScrollWheelValue > previousScrollValue)
{
    cameraPosition += new Vector3(0, 1, 0);
    UpdateViewMatrix();
}
previousScrollValue = currentMouseState.ScrollWheelValue;

它应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM