XNA-製作遊標需要注意的地方

  • 6623
  • 0
  • XNA
  • 2009-10-30

XNA-製作遊標需要注意的地方

    其實此篇文章最主要就是呼應之前從Window到Xbox360這篇文章,裡面提到最重要的幾件事情,就是Xbox360沒有支援滑鼠,還有類比搖桿所回傳的值只有(-1)~(1)之間的範圍值而已,所以勢必Windows和Xbox360設計必須要有所不行才可以,這邊舉的例子就是製作遊標(cursor)這項功能。

2

Winsows:

    首先先介紹在Windows上製作遊標這項功能,當然你必須先找到想要使用的遊標圖片,然後程式中要宣告存放遊標圖片的變數,再來是宣告為整數型態(int)存放遊標的X位置和Y位置,因為滑鼠的成員變數X和Y都是回傳當前遊標所在的整數數值。

X軸位置變數 = 滑鼠變數.X;
Y軸位置變數 = 滑鼠變數.Y;

    之後遊標圖片只需貼在該滑鼠回傳當前的X座標和Y座標即可。

spriteBatch.Draw(遊標圖片變數,new Vector2(X軸位置,Y軸位置),Color.White);

    在XNA3.0之後,Windows原本的游標顯示預設已經改成了false,故已經不需要程式將Windows遊標顯示的設定成false,而XNA2.0才需要做這個設定,因為那時候遇設值是true。

this.IsMouseVisible = false;

Xbox360:

    而在Xbox360上因為沒有支援滑鼠的關係,所以就只能使用搖桿上的類比按鍵來設定遊標的位置,當然也同樣需要存放X軸和Y軸變數的變數,但是他們必須是資料型態為浮點數(float)的型態,因為搖桿類比鍵的回傳值是(-1)~(1)之間的浮點數,也因為範圍值的關係因此你必須將X或Y軸位置加上或減掉該值才可以。

X軸位置變數 += 搖桿變數.ThumbSticks.Left.X;
Y軸位置變數 -= 搖桿變數.ThumbSticks.Left.Y;

    至於Y軸部分為何是用減的原因為類比鍵上為1、下為(-1)、左為(-1)、右為1和之前提過的2D座標有關最左上為原點)0,0)上為負、下為正、左為負、右為正,故回傳的X軸並無影響還是使用加號,至於Y軸的話就必須改用減號才符合我們人類的習慣'上、下、左、右。

    因此必須根據Windows或Xbox360的輸入設備而程式有所不同,往後會將所有的輸入設備作一個完整的介紹。

最後附上Window的製作遊標專案makecursor.rar

1