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.2、Libgdx的輸入處理之滑鼠、觸控和鍵盤
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命令-文件及內容處理之diff、vimdiff
text 屏幕滾動 就是 大文件 如同 創建 == --help The 文件及內容處理 - diff、vimdiff 1. diff:比較兩個文件區別 diff命令的功能說明 diff命令用比較文件的差異。diff以逐行的方式,比較文本文件的異同處。如果指定要比較
Shell命令-文件及內容處理之more、less
pre 使用配置 行數 quit 指定 設備 tab hist log 文件及內容處理 - more、less 1. more:分頁顯示文件內容 more命令的功能說明 more 命令類似 cat,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空
Shell命令-文件及內容處理之cut、rev
切割文件 解釋 選項 lock txt 錯誤 pre 分隔符 選項說明 文件及內容處理 - cut、rev 1. cut:切割文件內容 cut命令的功能說明 cut 命令用於顯示每行從開頭算起num1 到 num2 的文字。 cut命令的語法格式 cut [OPTI
Shell命令-文件及內容處理之split、paste
spl 小文件 寫到 情況 file 設置 ack 原來 疑問 文件及內容處理 - split、paste 1. split:分割文件為不同的小片段 split命令的功能說明 split 命令用於將一個文件分割成數個。該指令將大文件分割成較小的文件,在默認情況下將按照每
Shell命令-文件及內容處理之sort、uniq
文本 刪除 分隔 出現 使用 發表 結果 bcd 錯誤 文件及內容處理 - sort、unip 1. sort:對文件的文本內容排序 sort命令的功能說明 sort 命令用於將文本文件內容加以排序。sort 可針對文本文件的內容,以行為單位來排序。 sort命令的語
文件及內容處理之iconv、dos2unix
--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
3、Redis 叢集特性之容錯、資料遷移
前言: 該篇中主要講解一下redis的容錯以及資料的遷移(橫向拓展) redis 叢集資訊 在前面章節中講到將Node加入到cluster以後列印瞭如下日誌: [[email protected] src]# ./redis-trib.rb create --
web大前端-JS資料型別轉換、常用輸入輸出方法prompt、write、alert、console 資料型別判斷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