importjavax.microedition.lcdui.Command; importjavax.microedition.lcdui.CommandListener; importjavax.microedition.lcdui.Display; importjavax.microedition.lcdui.Displayable; importjavax.microedition.lcdui.Graphics; importjavax.microedition.lcdui.game.GameCanvas; importjavax.microedition.m3g.Camera; importjavax.microedition.m3g.Graphics3D; importjavax.microedition.m3g.Loader; importjavax.microedition.m3g.World; importjavax.microedition.midlet.MIDlet;
publicclassRMMIDletextendsMIDletimplementsCommandListener{ privateDisplaymyDisplay=null;
privateRetainedCanvasmyCanvas=null;
privateCommandexitCommand=newCommand("Exit",Command.ITEM,1);
publicRMMIDlet(){ super(); myDisplay=Display.getDisplay(this); myCanvas=newRetainedCanvas(); myCanvas.setCommandListener(this); myCanvas.addCommand(exitCommand); }
publicvoidstartApp(){ myCanvas.init(); myDisplay.setCurrent(myCanvas); myCanvas.start(); }
publicvoidpauseApp(){ }
publicvoiddestroyApp(booleanunconditional){ myCanvas.stop(); }
publicvoidcommandAction(Commandcmd,Displayabledisp){ if(cmd==exitCommand){ try{ destroyApp(false); notifyDestroyed(); }catch(Exceptione){ e.printStackTrace(); } } }
}
classRetainedCanvasextendsGameCanvasimplementsRunnable{ privatebooleanmRunning=false;
privateThreadmPaintThrd=null;
privateGraphics3DmGraphics3D=Graphics3D.getInstance();
privateWorldmWorld=null;
privateCameramCam=null;
privatelongmWorldStartTime=0;
publicRetainedCanvas(){ super(true); }
publicvoidinit(){ try{ mWorld=(World)Loader.load("/p.m3g")[0]; mCam=mWorld.getActiveCamera(); mCam.translate(0,0,-1.5f); mCam.setOrientation(180,0,1,0); }catch(Exceptione){ e.printStackTrace(); } mWorldStartTime=System.currentTimeMillis();
}
publicvoidstart(){ mRunning=true; mPaintThrd=newThread(this); mPaintThrd.start(); }
publicvoidstop(){ mRunning=false; try{ mPaintThrd.join(); }catch(InterruptedExceptionex){ } }
publicvoidrun(){ Graphicsg=getGraphics(); longstartTime;
while(mRunning){ cameraForward(); startTime=System.currentTimeMillis()-mWorldStartTime; mWorld.animate((int)startTime); mGraphics3D.bindTarget(g); mGraphics3D.render(mWorld); mGraphics3D.releaseTarget(); flushGraphics(); try{ Thread.sleep(100); }catch(InterruptedExceptionie){ } } }
privatevoidcameraForward(){ mCam.translate(0f,0f,0.2f); } }
|
<!-- end source code -->
相关推荐
Mobile 3D Graphics API文档
该包详细阐述了如何搭建j2me开发环境,有需要的自己下一下!!
JAVA J2ME飞行棋 好玩的飞行棋,就是太简单了
java j2me 经典算法集合 附带A*算法哦 QQ5267621
Java J2ME文件操作代码集,主要是通过一个Java文件管理器来展示一些文件操作。
Java j2me版扫雷代码,不多介绍了,类似代码觉得有不少可以参考,这是早几年运行在手机上的版本,不是Android版本。
java j2me接收,发送短信 真机上测试成功。 一个类是接收代码,另一个是发送代码。
java j2me上的图片抖动效果 特效 供大家参考学习
JAVA基于J2ME的手机游戏开发(论文+源代码)JAVA基于J2ME的手机游戏开发(论文+源代码)JAVA基于J2ME的手机游戏开发(论文+源代码)JAVA基于J2ME的手机游戏开发(论文+源代码)JAVA基于J2ME的手机游戏开发(论文+源代码)JAVA...
JAVA基于J2ME的手机游戏开发(LW+源代码)JAVA基于J2ME的手机游戏开发(LW+源代码)JAVA基于J2ME的手机游戏开发(LW+源代码)JAVA基于J2ME的手机游戏开发(LW+源代码)JAVA基于J2ME的手机游戏开发(LW+源代码)JAVA基于J2ME的...
java j2me的飞行棋 好玩的飞行棋,就是太简单了
JAVA基于J2ME的手机游戏开发(论文+源代码) JAVA基于J2ME的手机游戏开发(论文+源代码) JAVA基于J2ME的手机游戏开发(论文+源代码) JAVA基于J2ME的手机游戏开发(论文+源代码) JAVA基于J2ME的手机游戏开发(论文+源代码) ...
JAVA基于J2ME的手机游戏开发(Word论文+源代码) JAVA基于J2ME的手机游戏开发(Word论文+源代码) JAVA基于J2ME的手机游戏开发(Word论文+源代码) JAVA基于J2ME的手机游戏开发(Word论文+源代码) JAVA基于J2ME的手机游戏...
Java J2me游戏梦幻炸弹人源码,游戏关卡使用mapwin制作的,由一个java脚本自动生成。这个炸弹人与传统的炸弹人相比,BOSS的能力得到提升,2种大BOSS一个是蜈蚣另一个是蝙蝠,主角就没有创新了就是放置炸弹,游戏中的...
D:\资料\J2ME\[J2ME开发大全].Java_J2ME.pdf D:\资料\J2ME\[J2ME开发大全].Java_J2ME.pdf D:\资料\J2ME\[J2ME开发大全].Java_J2ME.pdf
J2ME中文教程 本教程的合适的读者 本教程是为了学习J2ME MIDP 技术的开发者准备的。尽管本教程内容涉及初学阶段,但本 教程不仅仅是一本入门的读物,很多的...事实上,本教程假定初学者已经有了一定的JAVA 语言基础。
J2ME 3D手机游戏开发.加载M3G文件演示
一些收集的J2ME初学者源代码,有关文本处理和图像处理方面的源码。
Java嵌入式应用是一个方兴 未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外 还需要到特定的嵌入式厂商那里下载模拟器。