预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共37页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Android3D游戏开发教程–PartI-VI 本帖最后由huzht于2010-4-2507:58编辑这几篇Android3D游戏开发的文章原文出自一位德国人Martin在droidnova.com写的文章,有lixinso翻译为中文。第一部分首先介绍OpenGL相关的术语,并引导你开始3D开发的第一步。这个关于3D游戏的系列的叫做Vortex.这个教程主要focus在3D编程上,其他的东西比如菜单和程序生命周期虽然是代码的一部分,但是在这里不会被提到。首先开始介绍OpenGL的术语。顶点Vertex顶点是3D空间中的一个点,也是许多对象的基础元素。在OpenGL中你可以生命少至二维坐标(X,Y),多至四维(X,Y,Z,W).w轴是可选的,默认的值是1.0.Z轴也是可选的,默认为0.在这个系列中,我们将要用到3个主要的坐标X,Y,Z,因为W一般都是被用来作为占位符。vertex的复数是vertices(这对非英语母语的人来说比较重要,因为这容易产生歧义)。所有的对象都是用vertices作为它们的点,因为点就是vertex。三角形Triangle三角形需要三个点才能创建。因此在OpenGL中,我们使用3个顶点来创建一个三角形。多边形Polygon多边形是至少有3个连接着的点组成的一个对象。三角形也是一个多边形。图元Primitives一个Primitive是一个三维的对象,使用三角形或者多边形创建。形象的说,一个有50000个顶点的非常精细的模型是一个Primitive,同样一个只有500个顶点的低模也叫做一个Primitive。现在我们可以开始变成了。创建一个工程交Vortex,activity也是这个名字。我们的工程应该大概是这个样子的: packagecom.droidnova.android.games.vortex; importandroid.app.Activity; importandroid.os.Bundle; publicclassVortexextendsActivity{ privatestaticfinalStringLOG_TAG=Vortex.class.getSimpleName(); privateVortexView_vortexView; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); _vortexView=newVortexView(this); setContentView(_vortexView); } } 复制代码 如上图所示,我们已经添加了View。让我们看一下VortexView类。 packagecom.droidnova.android.games.vortex; importandroid.content.Context; importandroid.opengl.GLSurfaceView; publicclassVortexViewextendsGLSurfaceView{ privatestaticfinalStringLOG_TAG=VortexView.class.getSimpleName(); privateVortexRenderer_renderer; publicVortexView(Contextcontext){ super(context); _renderer=newVortexRenderer(); setRenderer(_renderer); } } 复制代码 如上所示,我们继承了GLSurfaceView是因为它会帮助我们画3D图像。接下来看VortexRenderer类。一个Renderer包含画一帧所必需的所有东西。引用自这儿HYPERLINK"http://developer.android.com/intl/de/reference/android/opengl/GLSurfaceView.Renderer.html"\t"_blank"references。Renderer负责OpenGLcall来render一个帧。来看一下这个类: packagecom.droidnova.android.games.vortex; importjavax.microedition.khronos.egl.EGLConfig; importjavax.microedition.khronos.opengles.GL10; importandroid.opengl.GLSurfaceView; publicclassVortexRendererimplementsGLSur