m3gcanvas.java
来自「3D手机游戏开发实例源代码」· Java 代码 · 共 97 行
JAVA
97 行
import javax.microedition.lcdui.*;
import javax.microedition.m3g.*;
import javax.microedition.lcdui.game.*;
public class M3GCanvas extends Canvas implements Runnable
{
private Command exitCmd;
private Graphics3D g3d;
//private Graphics g2d = getGraphics();
private World world;
// world elements
private MobileCamera mobCam;
private Group cameraGroup;
public M3GCanvas()
{
setFullScreenMode(false);
g3d = Graphics3D.getInstance();
world = new World(); // create world graph
mobCam = new MobileCamera( getWidth(), getHeight());
world.addChild( mobCam.getCameraGroup() );
world.setActiveCamera( mobCam.getCamera() );
Light light = new Light(); // default white, directional light
light.setIntensity(1.25f); // make it a bit brighter
light.setOrientation(-45.0f, 1.0f, 0, 0); // pointing down and into world
// -45
world.addChild(light);
Background backGnd = new Background();
backGnd.setColor(0x00bffe); // a light blue background
world.setBackground(backGnd);
Object3D[] parts = null;
try {
parts = Loader.load("/pond_vilkutus.m3g");
}
catch (Exception e)
{ e.printStackTrace(); }
Group root = (Group) parts[0];
Group mGroup = (Group) root.find(296699498); // use Group with user ID id
Group parent = (Group)mGroup.getParent();
parent.removeChild(mGroup);
Group posGroup = new Group();
posGroup.setOrientation(-90.0f, 1.0f, 0, 0); // rotate -90 around x-axis
posGroup.addChild(mGroup);
world.addChild(posGroup);
Thread t = new Thread(this);
t.start();
} // end of LoaderCanvas()
protected void keyPressed(int keyCode)
{ int gameAction = getGameAction(keyCode);
mobCam.pressedKey(gameAction);
}
protected void keyReleased(int keyCode)
{ int gameAction = getGameAction(keyCode);
mobCam.releasedKey(gameAction);
}
protected void paint(Graphics g2d)
{
try{
g3d.bindTarget(g2d); // Binds the given Graphics or mutable Image2D as the rendering target of this Graphics3D
g3d.render(world);
}finally{
g3d.releaseTarget();
}
}
public void run() {
while(true){
mobCam.update();
repaint();
// flushGraphics();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?