天天看點

9.2、Libgdx的輸入處理之滑鼠、觸摸和鍵盤

Libgdx支援的最主要的裝置是desktop或浏覽器的滑鼠支援,Android的觸摸屏支援和鍵盤的支援。我們接下來了解一下。

單獨的key-code不能告訴我們使用者輸入了什麼。這通常是組合鍵造成這種困擾,比如可以通過shift和a來輸入A。

滑鼠和觸摸輸入允許使用者在螢幕上進行點選。兩種輸入機制都會傳回點選的坐标。原點在左上角,x軸向右,y軸向下。

滑鼠輸入還包含額外的資訊,通知哪個按鍵被按下。大部分滑鼠包含左鍵、右鍵和中間鍵。另外,滑鼠通常包含滾輪在應用中進行縮放和滾動等操作。

觸摸輸入沒有按鈕的概念。可能支援多點觸摸,這取決于具體的裝置。第一代Android手機僅僅支援單點觸摸。現在大部分手機都支援多點觸摸。

需要注意的是,觸摸操作在不同的裝置中有所差異。這就使得觸摸事件觸發後悔産生一定的問題。是以要盡可能多的在多台裝置上測試你的遊戲。

Libgdx抽象同一的對滑鼠和觸摸事件進行處理。我們可以将滑鼠視為一種特殊的觸摸。單點觸摸,除了坐标外,還會報告按下的按鍵。觸摸輸入支援多點觸摸,所有的觸摸事件都會預設設定滑鼠左鍵(隻要你點選螢幕,Libgdx按你滑鼠點選左鍵處理,隻不過支援多點)。

需要注意的是Android坐标系統跟螢幕的方向無關。取決于你在應用中的設定。

滑鼠和觸摸都能通過輪詢和事件驅動進行處理。

繼續閱讀