這幾篇Android 3D遊戲開發的文章原文出自一位德國人Martin在droidnova.com寫的文章,有lixinso翻譯為中文。
這個系列的第四部分講如何給三角形添加顏色。
在上一部分我們建立了第二個靜態三角形來驗證我們旋轉的是三角形而不是整個情境。這裡我們將這個靜態三角形刪除掉。刪除掉initStaticTriangle()函數,刪除兩個buffer,_indexBufferStatic和_vertexBufferStatic。同時也要刪除原來初始靜止三角形時用到的onDrawFrame()中的最後四行。
新的onDrawFrame()方法如下:
現在我們為儲存顏色資訊建立一個新的buffer。這個_colorBuffer是一個物件變數,但是我們需要在initTriangle()方法中定義顏色並填充這個buffer.
我們建立了一個FloatBuffer類型的物件變數_colorBuffer(第四行)。在initTriangle()方法中我們為新的顏色buffer分配了足夠多的記憶體(19-21行)。接下來我們建立了一個float數組(23-27行),每個頂點有4個值。 這個結構是RGBA(Red,Green,Blue,alpha)的,所以第一個頂點是紅顏色,第二個顏色是綠色,第三個顏色是藍色。最後兩部和_vertexBuffer相同。我們將顏色數組放到buffer裡面,將buffer的position設定為0.
當這些準備工作都做完了以後,我們開始告訴OpenGL ES使用我們的顏色數組。這通過glEnableClientState(),以及glColorPointer()來完成,和vertexBuffer類似。
第五行我們enable了color mode。在17行我們設定了顏色 pointer。參數4表示RGBA(RGBA剛好是四個值),其餘的幾個參數大家都比較熟悉了。
也許你也看到了,我們注釋掉了15行,因為我們使用的是color mode,所以不再需要glColor4f。它會覆蓋,所以我們可以注注釋掉或者刪除掉他。
Eclipse工程原始碼參考: Vortex Part IV