1. 程式人生 > >9.2、Libgdx的輸入處理之滑鼠、觸控和鍵盤

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

Libgdx支援的最主要的裝置是desktop或瀏覽器的滑鼠支援,Android的觸控式螢幕支援和鍵盤的支援。我們接下來了解一下。

鍵盤

使用者按下或釋放一個按鍵生成了相應的事件。每個事件包含了一個 key-code來識別是哪個按鍵按下或釋放。這些key-code在不同的平臺是不同的。Libgdx要做的就是隱藏不同系統之前的差別。可以查閱Keys類。你可以通過輪詢來判斷是哪個鍵被按下。

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

滑鼠和觸控

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

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

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

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

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

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

滑鼠和觸控都能通過輪詢和事件驅動進行處理。
www.libgdx.cn版權所有,如需轉載,註明出處)

相關推薦

9.2Libgdx輸入處理滑鼠觸控鍵盤

Libgdx支援的最主要的裝置是desktop或瀏覽器的滑鼠支援,Android的觸控式螢幕支援和鍵盤的支援。我們接下來了解一下。 鍵盤 使用者按下或釋放一個按鍵生成了相應的事件。每個事件包含了一個 key-code來識別是哪個按鍵按下或釋放。這些key-code在不同的

第八章 Libgdx輸入處理9)選單捕獲

Android遊戲開發群:290051794 Libgdx遊戲開發框架交流群:261954621 在Android中,當用戶按下返回鍵,這樣通常會關閉正在執行的Activity。遊戲通常會在退出之前

9-2 計算兩個複數

// 計算兩個複數之積 #include <stdio.h> #include <math.h> struct Complex { double real; double imag; }; void Multiply(struct Complex *p, struc

【OpenCV】OpenCV輸入處理滑鼠事件_鍵盤事件_滑塊事件)

1、輸入處理(1) 處理滑鼠事件: 定義一個滑鼠處理程式:void mouseHandler(int event, int x, int y, int flags, void* param) { switch(event) { case CV_EVENT_LBUTTOND

視訊圖形影象處理Opencv技術記錄(五)Opencv教程影象處理(imgproc模組)平滑影象

目標 在本教程中,您將學習如何使用OpenCV函式應用各種線性濾鏡來平滑影象,例如: 理論 注意 下面的解釋屬於Richard Szeliski和LearningOpenCV的計算機視覺:演算法和應用一書 平滑,也稱為模糊,是一種簡單且經常使用的影象處理操作。

opencv影象處理滑鼠事件(矩形roi繪圖)

為滿足影象處理要求,博主寫此簡易程式碼有如下作用: 1、根據感興趣區域做深度學習標籤; 2、提取感興趣區域進行目標跟蹤; 3、對感興趣區域進行進一步操作。 具體程式碼如下: //Author: s

視訊圖形影象處理Opencv技術記錄(六)均衡直方圖

目標 在本教程中,您將學習: 什麼是影象直方圖以及為什麼它有用 理論 什麼是影象直方圖? 它是影象強度分佈的圖形表示。 它量化了所考慮的每個強度值的畫素數。 什麼是直方圖均衡?

Shell命令-文件及內容處理diffvimdiff

text 屏幕滾動 就是 大文件 如同 創建 == --help The 文件及內容處理 - diff、vimdiff 1. diff:比較兩個文件區別 diff命令的功能說明 diff命令用比較文件的差異。diff以逐行的方式,比較文本文件的異同處。如果指定要比較

Shell命令-文件及內容處理moreless

pre 使用配置 行數 quit 指定 設備 tab hist log 文件及內容處理 - more、less 1. more:分頁顯示文件內容 more命令的功能說明 more 命令類似 cat,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空

Shell命令-文件及內容處理cutrev

切割文件 解釋 選項 lock txt 錯誤 pre 分隔符 選項說明 文件及內容處理 - cut、rev 1. cut:切割文件內容 cut命令的功能說明 cut 命令用於顯示每行從開頭算起num1 到 num2 的文字。 cut命令的語法格式 cut [OPTI

Shell命令-文件及內容處理splitpaste

spl 小文件 寫到 情況 file 設置 ack 原來 疑問 文件及內容處理 - split、paste 1. split:分割文件為不同的小片段 split命令的功能說明 split 命令用於將一個文件分割成數個。該指令將大文件分割成較小的文件,在默認情況下將按照每

Shell命令-文件及內容處理sortuniq

文本 刪除 分隔 出現 使用 發表 結果 bcd 錯誤 文件及內容處理 - sort、unip 1. sort:對文件的文本內容排序 sort命令的功能說明 sort 命令用於將文本文件內容加以排序。sort 可針對文本文件的內容,以行為單位來排序。 sort命令的語

文件及內容處理iconvdos2unix

--help .sh erb tput amp 今天 忽略 常用命令 轉換文件 文件及內容處理 - iconv、dos2unix 1. iconv:轉換文件的編碼格式 iconv命令的功能說明 iconv 命令是 linux 下用於文件轉編碼的常用命令,對於同時使用 w

0服務啟動前日誌欄位格式

1、日誌聚合體的欄位和格式,日誌上報策略 公有欄位 createAtMs:日誌建立時間 appId :應用唯一標識,如微信、qq、微博 tenantId :租戶唯一標識,企業使用者 deviceid :收集裝置唯一標識 appVersion:應用版本 aPPChannel:應

數字影象處理空間域濾波銳化(Octave實現)

濾波這一概念可以結合數字訊號處理這一領域中的濾波。而在數字影象處理中濾波可以分為空間域濾波和頻率域濾波。這篇博文主要來學習下空間域濾波。 空間域濾波機理 *空間濾波器由一個鄰域(典型的是一個較小的矩形)構成,對該鄰域所包圍的畫素按照一定的操作計算出目標畫素的值,這一過程就是空

【進階1-2期】JavaScript深入執行上下文棧變數物件

本期的主題是呼叫堆疊,本計劃一共28期,每期重點攻克一個面試重難點,如果你還不瞭解本進階計劃,文末點選檢視全部文章。 如果覺得本系列不錯,歡迎點贊、評論、轉發,您的支援就是我堅持的最大動力。 JS是單執行緒的語言,執行順序肯定是順序執行,但是JS 引擎並不是一行一行地分析和執行程式,而是一段一段地分析

常用函數文本處理函數日期函數

pan 常用函數 diff str2 格式化 cde now() 分隔 color 1、CONCAT(str1,str2,...) 返回結果為連接參數產生的字符串。如有任何一個參數為NULL,則返回值為 NULL。 2、CONCAT_WS(separator,str1,st

3Redis 叢集特性容錯資料遷移

前言: 該篇中主要講解一下redis的容錯以及資料的遷移(橫向拓展) redis 叢集資訊 在前面章節中講到將Node加入到cluster以後列印瞭如下日誌: [[email protected] src]# ./redis-trib.rb create --

web大前端-JS資料型別轉換常用輸入輸出方法promptwritealertconsole 資料型別判斷typeof運算子

常用的三個客戶端輸出方法 document.write(str) 功能:在網頁的<body>標記,輸出str的內容 document是一個文件物件,代表整個網頁。 write()是document物件的一個輸出方法。 ".":通過小數點來呼叫物件的方法。 str:

最大子陣列之和最大子陣列最長遞增子序列求法

#include<iostream> #include<math.h> using namespace std; int max(int a,int b){ return a>b?a:b; } int FindGreatestSumOfSubArrey(int