📄 myworld.java
字号:
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
public class MyWorld extends Canvas implements Runnable{
World scene;
Camera cam;
Graphics3D gr3D;
Thread animateThread;
Transform trans;
float x=0.0f;
float y=0.2f;
float z=4.5f;
public MyWorld(){
scene=new World();
gr3D=Graphics3D.getInstance();
scene.addChild(MyWorld.createPlane(null,0));
addCamera();
animateThread=new Thread(this);
animateThread.start();
System.out.println("错误报告");
}
public static Mesh createPlane(String texFilename,int cullFlags){
byte[] VERTEX_POSITIONS={
-1,-1, 1,
1,-1, 1,
1,-1,-1,
-1,-1,-1,
0, 1, 0
};
byte[] VERTEX_COLORS={
127, 0, 0,
0,127, 0,
0, 0,127,
127, 0,127,
0,127,127
};
VertexArray va;
IndexBuffer triangles;
va=new VertexArray(VERTEX_POSITIONS.length/3,3,1);
va.set(0, VERTEX_POSITIONS.length/3, VERTEX_POSITIONS);
VertexArray vaColor=new VertexArray(VERTEX_COLORS.length/3,3,1);
vaColor.set(0,VERTEX_COLORS.length/3, VERTEX_COLORS);
VertexBuffer vbuf=new VertexBuffer();
vbuf.setPositions(va,1.0f,null);
vbuf.setColors(vaColor);
int[] striplengths =new int[]{18};
int[] index=new int[]{
0,1,4,
1,2,4,
2,3,4,
3,0,4,
2,1,0,
2,0,3,
};
triangles =new TriangleStripArray(index,striplengths);
Appearance appearance=new Appearance();
Mesh mesh=new Mesh(vbuf,triangles,appearance);
return mesh;
}
public void addCamera(){
cam=new Camera();
float aspectRatio=((float)getWidth()/(float)getHeight());
cam.setPerspective(70.0f, aspectRatio, 0.1f, 50.0f);
trans=new Transform();
trans.postTranslate(x, y, z);
cam.setTransform(trans);
scene.addChild(cam);
scene.setActiveCamera(cam);
}
protected void paint(Graphics g) {
g.drawString("thread", 0, 0, 256);
gr3D.bindTarget(g);
gr3D.render(scene);
}
public void run() {
while(true){
repaint();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -