//MIDlet代码
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Test3DMIDlet extends MIDlet{
M3GCanvas m3g = new M3GCanvas();
public void startApp(){
Display.getDisplay(this).setCurrent(m3g);
}
public void pauseApp(){}
public void destroyApp(boolean b){}
}
//Canvas代码
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
public class M3GCanvas extends Canvas{
/**World对象*/
private World world;
/**Graphics3D对象*/
Graphics3D g3d;
/**Camera对象*/
Camera camera;
public M3GCanvas(){
try{
//导入图片
Object3D[] obj = Loader.load("/res/pogoroo.m3g");
//获得图片中的World对象
for(int i = 0;i < obj.length;i++){
if(obj[i] instanceof World){
world = (World)obj[i];
break;
}
}
//获得Graphics3D对象
g3d = Graphics3D.getInstance();
//获得获得Camera
camera = world.getActiveCamera();
}catch(Exception e){
System.out.println(e);
}
}
public void paint(Graphics g){
try{
//绑定
g3d.bindTarget(g);
//代理
g3d.render(world);
}catch(Exception e){
}finally{
//释放
g3d.releaseTarget();
}
}
public void keyPressed(int keyCode){
int action = this.getGameAction(keyCode);
if(action == Canvas.UP){
//移动相机
camera.setTranslation(0,0,0.2f);
}
//重新绘制
repaint();
}
}
注:其中pogoroo.m3g文件可以从WTK22的\apps\Demo3D中找到