[翻譯]Android 3D 遊戲開發教程– Part IV

來源:互聯網
上載者:User

這幾篇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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.