gpt4 book ai didi

c# - xna 使用鼠标滚轮缩放

转载 作者:行者123 更新时间:2023-11-30 20:01:43 27 4
gpt4 key购买 nike

如何使用鼠标滚轮进行缩放,我试过了

        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 进行比较并为您提供一个 bool 值。

编辑:
你应该这样做:

声明一个全局变量

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;

它应该可以工作。

关于c# - xna 使用鼠标滚轮缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com