簡體   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