OpenGL ES 6 響應觸控事件

2021-07-23 02:05:10 字數 1054 閱讀 4916

要響應觸控事件,就需要實現glsu***ceview的ontouchevent()方法來監聽觸控事件。

設定乙個觸控監聽

下面的**監聽motionevent.action_move事件,然後旋轉形狀乙個角度。

@override

public

boolean

ontouchevent

(motionevente)

// reverse direction of rotation to left of the mid-lineif(

x <

getwidth()/

2)mrenderer

.mangle +=(

dx +dy)

*touch_scale_factor

;// = 180.0f / 320

requestrender

();}

mpreviousx =x

;mpreviousy =y

;return

true

;}

計算了角度後,呼叫requestrender()來告訴渲染器渲染檢視。這種方法是最有效率的,因為除非發生旋轉,不然檢視不會被重繪。為了實現資料變化才重繪檢視,你需要像下面這樣設定setrendermode()方法:

public

myglsu***ceview

(context

context

)

公開旋轉角度上面的例項**需要公開旋轉角度,當渲染**執行在乙個特別的執行緒中時,你需要宣告乙個公共變數為volatile的,作用是為了同步旋轉的角度:

public

class

myglrenderer

implements

glsu***ceview

.renderer

執行效果如下:

(6)響應觸控事件

讓物件按著預設的程式移動比如旋轉三角形,看起來是有些亮點的,但是如果你想讓使用者和你的opengl es圖形進行互動,該如何做呢?使你的opengl es程式可以觸控互動的關鍵是,實現glsu ceview的過載方法ontouchevent 讓它可以監聽觸控事件。這篇文章將向你展示如何監聽觸控事件讓...

ios觸控事件響應鏈個人總結

在如下圖所示的檢視層次中,假設使用者觸控的時e檢視,在呼叫hittest withevent 時 首先對a進行測試,返回yes,繼續對b和c進行測試 對b測試返回no,不再繼續往下測試,轉而對c進行測試 對c測試返回yes,繼續對d和e進行測試 對d測試返回no,不再繼續往下測試,轉而對e進行測試 ...

觸控事件的產生 傳遞與響應

主視窗會在檢視層次結構中,通過hittest方法尋找最合適的檢視view來處理觸控事件,事件處理的第一步 找到合適的檢視view控制項之後,就會呼叫該控制項的touches方法來處理相應的事件 事件的傳遞 觸控事件的傳遞是從父控制項傳遞到子控制項的,以下圖為例,事件的傳遞過程如下 點選藍色 點選來黃...