2012-01-31 191 views
3

我在Android的OPENGL的幫助下創建了一個旋轉的多維數據集,現在我想添加一個偵聽器來處理多維數據集的旋轉。當我單擊按鈕時,CUBE必須開始旋轉,反之亦然。 。如何在OPENGL屏幕上添加按鈕?在OPENGL屏幕上添加按鈕

回答

5

有兩個選項:

  1. 創建的佈局,包括你的GLSurfaceView和任何按鈕/你想要的設置。使用標準的OnClickListener作爲按鈕,並讓偵聽器在渲染器中調用一個方法來進行旋轉。這幾乎是最簡單的方法,但是按鈕的樣式將根據操作系統版本和供應商而改變。如果你想對按鈕有更多的控制權,你可以嘗試其他選項。
  2. 使用OpenGL繪製按鈕。渲染立方體後,將投影矩陣切換爲與您的屏幕尺寸相同的正交投影(glOrtho),並用您的按鈕圖像繪製帶紋理的矩形(您也可以像使用9個矩形保持Android一樣縮放按鈕圖像邊角銳利,只是縮放圖像的內部部分,通常是漸變色或純色)。您必須將渲染器設置爲接收觸摸輸入,並進行簡單的遏制檢查,確認按下的點位於按鈕的範圍內。如果是,那麼你可以調用處理旋轉的方法。

如果你想要一個完整的用戶界面庫,我相信在Android上有幾個OpenGL ES存在,其中大多數可能是大型遊戲引擎的一部分,它將處理大多數爲你工作。如果你只是想單一按鈕,我會建議第一個選項,因爲它是最簡單的。

0

您可以繪製一個Button對象(矩形),該對象始終與攝像機保持垂直,以獲得按鈕的視覺效果 。每次相機變換時,按鈕對象也應該相對變形。

的點擊部分需要處理seperately徹底採摘,即你需要從相機的中心投下光線,看看它是否相交的3D按鈕對象

此外,如果您是在桌面上,你這樣做會尋找像 CEGUI「疊加GUI」庫這是相當不錯 http://www.cegui.org.uk/wiki/index.php/Main_Page 要不然你也可以使用Navilibrary和SDL http://princeofcode.com/navilibrary.php

在機器人的情況下,你可以探索上述庫中的代碼(開源)和嘗試從那裏獲得想法。