Android平臺消息響應機制的研究及其觸摸屏響應的優(yōu)化實(shí)現
上面是聲音界面的觸摸響應處理:event.getAction()是鍵控的類(lèi)型,是MotionEvent 類(lèi)的系統方法,獲取當前的觸摸響應。當向下觸摸屏幕時(shí),就響應MotionEvent.ACTION_DOWN這個(gè)動(dòng)作,當觸點(diǎn)滿(mǎn)足給定的區間范圍,就執行相當的操作,實(shí)現游戲的狀態(tài)跳轉。觸摸范圍在劃分的時(shí)候最好以屏幕的相對位置為參考點(diǎn),這樣在應用橫豎屏的處理或者應用移植的時(shí)候會(huì )更方便,避免了頻繁修改參考坐標的值。在程序入口處繼承Activity 的子類(lèi)中可以獲取當前設備屏幕寬和高的具體屬性,這樣觸摸范圍確定時(shí)以屏幕的寬和高的屬性值來(lái)定位就可以了。整個(gè)觸摸部分的流程圖如下:

圖2 觸摸屏操作響應的具體流程
圖 2 顯示的是游戲過(guò)程中觸摸屏幕時(shí)具體的響應流程,主要涉及到Activity 類(lèi)和View類(lèi)。在A(yíng)ctivity 類(lèi)中進(jìn)行觸摸方法onTouchEvent()的聲明,在View 類(lèi)中對該方法進(jìn)行詳細定義和說(shuō)明。當觸摸響應后,觸發(fā)事件響應機制,event 對象通過(guò)getAction()方法獲取觸摸響應,獲得當前的觸摸點(diǎn)坐標event.getX()和event.getY(),與方法中的觸摸范圍進(jìn)行判斷,若在區域內則執行觸摸響應。觸摸響應執行后需要在觸摸釋放MotionEvent.ACTION_DOWN進(jìn)行觸摸釋放的處理,及時(shí)釋放當前的觸摸響應。
3 Android 平臺觸摸響應的優(yōu)化
值得注意的是,上面觸摸響應MotionEvent.ACTION_DOWN 中,特意定義了一個(gè)臨時(shí)觸摸計數變量keyCount,當計數變量加到一定的程度時(shí)候才執行觸摸響應。這樣處理能有效地防止連續觸摸響應,觸摸不釋放而直接跳到下一個(gè)狀態(tài),觸摸變量的設置在各個(gè)界面跳轉過(guò)程中尤其是游戲菜單中各界面跳轉中是很有必要的。
觸摸響應中除了各個(gè)菜單界面的響應以外還有一個(gè)重要的響應就是游戲中對主角的操控。主游戲界面的觸摸響應原理和菜單界面是一致的,不同的是觸摸判斷范圍的選取有差異,菜單界面各個(gè)觸摸范圍是固定的,而游戲界面觸摸區域的劃定是動(dòng)態(tài)的。由于在角色扮演等游戲中主角是核心人物,因此對主角的操控的觸摸響應顯得尤其重要,進(jìn)行觸摸設計的時(shí)候一般以主角為中心進(jìn)行設計,以主角的坐標作為基本點(diǎn)來(lái)判斷。
圖3 主角控制時(shí)區域的劃分
圖 3 所示的是主角移動(dòng)時(shí)候的區域劃分,以水平和垂直坐標軸的交點(diǎn)作為主角的坐標中心點(diǎn),將主角周邊的區域劃分為10 個(gè)區域,觸點(diǎn)在區域9-10 的時(shí)候方向向右,對稱(chēng)的區域5-6 的時(shí)候方向向左,區域7-8 的時(shí)候方向向下。對于區域1-4 進(jìn)行進(jìn)一步的劃分,2-3 區域方向向上,只響應向上的操作,區域1 同時(shí)響應右鍵和上鍵,區域4 同時(shí)響應左鍵和上鍵。這樣對區域進(jìn)行細化符合實(shí)際情況,區域1 和區域4 的角度范圍可以根據實(shí)際情況微調。
評論