2012-06-21 85 views
0

因此,我正在製作一個應用程序,您可以點擊屏幕並快速創建對象。我應該如何去做這件事?我創建了一個獨立的類,它包含要創建的對象的屬性,用於呈現每個特定形狀的類以及用於以前類的抽象類。但基本上我只是想能夠點擊一個特定的點,並呈現以該點爲中心的指定形狀。如何在opengl es 2.0中快速渲染對象

回答

0

首先,讓您的活動實施OnTouchListener並重寫folllowing方法,你可以檢索觸摸座標:

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
    touchX = (int) event.getX(); 
    touchY = (int) event.getY(); 
    } 

    return true; 
} 

觸摸事件,然後你可以打電話給你的方法繪製所需的形狀傳球touchX和touchY值並進行翻譯。

+0

好的,謝謝,但我主要想知道爲了渲染單獨的類中的對象,我需要創建哪種緩衝區或着色器。像我可以從我的主要活動中回收什麼東西,以及我需要創建新的東西? – scssquatch

+0

在您的活動中,只需創建一個實現** GLSurfaceView.Renderer **的內部類。管理所有的着色器手柄,矩陣等,然後傳遞想要呈現的形狀。您可以爲形狀類自己的形狀保存緩衝區(positionBuffer,colorBuffer,texCoordBuffer,normalBuffer)。 – baeschti

+0

如果有人想知道完整的答案,我想清楚了。你必須傳遞位置和顏色句柄,設置位置,創建一個vertexAtrribPointer,設置glEnableVertexAttribAarray,設置顏色位置,像attrib數組一樣爲顏色執行上述操作。然後使用glDrawArrays或元素繪製對象。我還必須從頂點創建一個字節緩衝區,並將它們放在0的位置。 – scssquatch