[Android] 3D game tutorial – Part I

更新為 Android2.0.1

本系列第一部分將給你一個簡短的開場,術語和OpenGL的第一步,您的3D編程。

該系列本身將是對所謂的3D遊戲的 Vortex
本教程將側重於 3D編程,東西像菜單或生命週期可能是部分的代碼,但不會推出。

讓我們先從 OpenGL的術語。




Vertex - **頂點
一個頂點是在三維空間中的一點,可以建出許多物件。在OpenGL可指定最少兩個坐標[coordinates]XY)和最多4個(的XYZW)。在W -軸是可選的,默認值設置為 1.0Z軸也是可選的,默認值設置為 0。在這個系列中,我們將使用三個主要坐標 XYZW是因為通常用作一個佔位符(placeholder)。複數的vertexvertices。所有的對象都是使用vertices繪製作為他們的points,所以point會提到一個vertex

Triangle - **三角形
一個三角形需要被3點創建。因此,在OpenGL中,我們使用三個頂點創建一個。

Polygon - **多邊形
一個多邊形是一個對象,它至少有三個連接點。為此三角形也是一個多邊形。

Polygon - **基元
一個基元是使用或三角形或多邊形創建的一個3D物件。有點諷刺意味:50.000詳細模型的頂點,也是一種原始的詳細模型就像一個低500頂點。

現在我們可以開始編程。
我們創建了一個新的project,稱為Vortex
我們的活動會很熟悉:

[java]
package com.droidnova.android.games.vortex;

import android.app.Activity;
import android.os.Bundle;

public class Vortex extends Activity {
private static final String LOG_TAG = Vortex.class.getSimpleName();
private VortexView _vortexView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_vortexView = new VortexView(this);
setContentView(_vortexView);
}
}
[/java]

正如您所見,我們已經將自己的看法。讓我們看一看我們的權利

VortexView類。

正如你看到的,我們繼承 GLSurfaceView因為它會幫助我們管理的繪圖。接下來的事情你應該看到的是我們的VortexRenderer類。
一個渲染器有什麼那執行任務需要畫一個框架。引用 引用

渲染器是負責制定OpenGL調用來呈現一個框架。

因此,讓看看這個類:

[java]
package com.droidnova.android.games.vortex;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import android.opengl.GLSurfaceView;

public class VortexRenderer implements GLSurfaceView.Renderer {
private static final String LOG_TAG = VortexRenderer.class.getSimpleName();

private float _red = 0.9f;
private float _green = 0.2f;
private float _blue = 0.2f;

@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
// Do nothing special.
}

@Override
public void onSurfaceChanged(GL10 gl, int w, int h) {
gl.glViewport(0, 0, w, h);
}

@Override
public void onDrawFrame(GL10 gl) {

/ /定義的顏色,我們要顯示為“剪輯牆”

gl.glClearColor(_red, _green, _blue, 1.0f);
/ /清除顏色緩衝區,以顯示ClearColor我們呼籲上面…

gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
}
}
[/java]

好吧,我們在這裡做什麼?

首先,我們實作了interface GLSurfaceView。它迫使我們實作渲染的 3methodsonSurfaceCreated(), onSurfaceChanged() , onDrawFrame()這些方法很容易理解,第一個被稱為後表面產生,第二,如果面變化,如您切換從縱向到橫向,最後一個,隨時繪圖要求。
從第11行至13行,我們有floats定義每個顏色的RGB色彩系統。
28行我們定義的顏色我們的“clipping wall”的方法glClearColor()。該“clipping wall”涵蓋一切,是背後的距離,我們可以看到,所以每一個物件背後的“wall”是無形的。想像一下,壁類似霧。後來我們將設置距離以顯示它是如何工作。目前,它是絕對足夠的,你知道它的存在。
為了使我們的顏
Next: 轉:「路徑」「貝茲曲線」超詳細教學 Prev: [C#]Report Viewer