📄 plane.java
字号:
package myGame.main;
import javax.microedition.m3g.*;
class Plane {
// 定义顶点数组
private final static short POINTS[] = new short[] { (short) 1, (short) 1,
(short) 0, // 顶点0
(short) 1, (short) -1, (short) 0, // 顶点1
(short) -1, (short) 1, (short) 0, // 顶点2
(short) -1, (short) -1, (short) 0, // 顶点3
};
// define the texture coordinates
private final static short TEXTCOORDINATES[] = new short[] { (short) 1,
(short) 1, (short) 0, (short) 1, (short) 1, (short) 0, (short) 0,
(short) 0, };
// triangle strip indices
private final static int INDICES[] = { 2, 3, 0, // 第一个三角面的索引,由顶点2、3、0 构成
1, 0, 3, // 第二个三角面的索引,由顶点1、0、3 构成
0, 3, 2, // 第三个三角面的索引,由顶点0、3、2 构成
3, 0, 1 // 第四个三角面的索引,由顶点3、0、1 构成
};
// strip lengths
private final static int[] LENGTHS = new int[] { 3, 3, 3, 3 }; // 三角形长度,共有四个三角形
// these arrays are the same for each plane
private final static VertexArray POSITIONS_ARRAY, TEXTURE_ARRAY;// 声明位置数组和纹理坐标数组
private final static IndexBuffer INDEX_BUFFER;// 声明索引缓冲
private Transform wallTransform = new Transform();
private float textureRepeat;
static {
// 初始化这些通用数组
POSITIONS_ARRAY = new VertexArray(POINTS.length / 3, 3, 2);// 创建位置数组
POSITIONS_ARRAY.set(0, POINTS.length / 3, POINTS); // 设置位置数组
TEXTURE_ARRAY = new VertexArray(TEXTCOORDINATES.length / 2, 2, 2);// 创建纹理数组
TEXTURE_ARRAY.set(0, TEXTCOORDINATES.length / 2, TEXTCOORDINATES);// 设置纹理数组
INDEX_BUFFER = new TriangleStripArray(INDICES, LENGTHS);// 索引缓冲
}
/**
* Plane的构造函数,需要一个指定的transform对象,和纹理的重复次数
*
* (它使用一个从外部传递进来的Transform对象来修正这些正方形的方位 以及需要的外部纹理的重复次数)
*/
Plane(Transform wallTransform, float textureRepeat) {
this.wallTransform = wallTransform;
this.textureRepeat = textureRepeat;
}
// 创建网格
Mesh createMesh() {
VertexBuffer vertexBuffer = new VertexBuffer();// 构建一个顶点缓冲对象
vertexBuffer.setPositions(POSITIONS_ARRAY, 1.0f, null);// 设置位置,无缩放,无偏移
// 设置纹理坐标和重复次数
vertexBuffer
.setTexCoords(0, TEXTURE_ARRAY, (float) textureRepeat, null);
Mesh mesh = new Mesh(vertexBuffer, INDEX_BUFFER, null);// 根据顶点/索引缓冲构造Mesh对象
mesh.setTransform(wallTransform);// 进行指定的翻转
return mesh;// 返回这个正方形平面
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -