資源描述:
《android d 游戲開發(fā)教程.》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Android3D游戲開發(fā)教程–PartI-VI本帖最后由huzht于2010-4-2507:58編輯這幾篇Android3D游戲開發(fā)的文章原文出自一位德國人Martin在droidnova.com寫的文章,有l(wèi)ixinso翻譯為中文。第一部分首先介紹OpenGL相關(guān)的術(shù)語,并引導(dǎo)你開始3D開發(fā)的第一步。這個(gè)關(guān)于3D游戲的系列的叫做Vortex.這個(gè)教程主要focus在3D編程上,其他的東西比如菜單和程序生命周期雖然是代碼的一部分,但是在這里不會(huì)被提到。首先開始介紹OpenGL的術(shù)語。????頂點(diǎn)Vertex頂點(diǎn)是3D空間中的一個(gè)點(diǎn),也是許多對(duì)象的基礎(chǔ)元素。在OpenG
2、L中你可以生命少至二維坐標(biāo)(X,Y),多至四維(X,Y,Z,W).w軸是可選的,默認(rèn)的值是1.0.Z軸也是可選的,默認(rèn)為0.在這個(gè)系列中,我們將要用到3個(gè)主要的坐標(biāo)X,Y,Z,因?yàn)閃一般都是被用來作為占位符。vertex的復(fù)數(shù)是vertices(這對(duì)非英語母語的人來說比較重要,因?yàn)檫@容易產(chǎn)生歧義)。所有的對(duì)象都是用vertices作為它們的點(diǎn),因?yàn)辄c(diǎn)就是vertex。三角形Triangle三角形需要三個(gè)點(diǎn)才能創(chuàng)建。因此在OpenGL中,我們使用3個(gè)頂點(diǎn)來創(chuàng)建一個(gè)三角形。多邊形Polygon多邊形是至少有3個(gè)連接著的點(diǎn)組成的一個(gè)對(duì)象。三角形也是一個(gè)多邊形。圖元Primit
3、ives一個(gè)Primitive是一個(gè)三維的對(duì)象,使用三角形或者多邊形創(chuàng)建。形象的說,一個(gè)有50000個(gè)頂點(diǎn)的非常精細(xì)的模型是一個(gè)Primitive,同樣一個(gè)只有500個(gè)頂點(diǎn)的低模也叫做一個(gè)Primitive?,F(xiàn)在我們可以開始變成了。創(chuàng)建一個(gè)工程交Vortex,activity也是這個(gè)名字。我們的工程應(yīng)該大概是這個(gè)樣子的:packagecom.droidnova.android.games.vortex;importandroid.app.Activity;importandroid.os.Bundle;publicclassVortexextendsActivity{?
4、?privatestaticfinalStringLOG_TAG=Vortex.class.getSimpleName();??privateVortexView_vortexView;??@Override??protectedvoidonCreate(BundlesavedInstanceState){??????super.onCreate(savedInstanceState);??????_vortexView=newVortexView(this);??????setContentView(_vortexView);??}}復(fù)制代碼如上圖所示,我們已經(jīng)添加了
5、View。讓我們看一下VortexView類。packagecom.droidnova.android.games.vortex;importandroid.content.Context;importandroid.opengl.GLSurfaceView;publicclassVortexViewextendsGLSurfaceView{??privatestaticfinalStringLOG_TAG=VortexView.class.getSimpleName();??privateVortexRenderer_renderer;??publicVortexVi
6、ew(Contextcontext){??????super(context);??????_renderer=newVortexRenderer();??????setRenderer(_renderer);??}}復(fù)制代碼如上所示,我們繼承了GLSurfaceView是因?yàn)樗鼤?huì)幫助我們畫3D圖像。接下來看VortexRenderer類。一個(gè)Renderer包含畫一幀所必需的所有東西。引用自這兒references。Renderer負(fù)責(zé)OpenGLcall來render一個(gè)幀。來看一下這個(gè)類:packagecom.droidnova.android.games.vor
7、tex;importjavax.microedition.khronos.egl.EGLConfig;importjavax.microedition.khronos.opengles.GL10;importandroid.opengl.GLSurfaceView;publicclassVortexRendererimplementsGLSurfaceView.Renderer{privatestaticfinalStringLOG_TAG=VortexRenderer.class.getSimpleName();privatefloat