[英]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.