快速业务通道

为J2ME开发移动3D游戏之保留模式 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
t height = viewport_width/params[1]; viewport_height=(int)height; viewport_y=(myCanvas.getHeight()-viewport_height)/2;   }   else{ float width = viewport_height*params[1]; viewport_width=(int)width; viewport_x=(myCanvas.getWidth()-viewport_width)/2;   } } } public void getObjects(){ try{   tRoo = (Group) myWorld.find(POGOROO);   tCams = (Group) myWorld.find(CAMERA);   acRoo = (Group) myWorld.find(TRANSFORM);   animRoo = (AnimationController) myWorld.find(ROO);   //取得动画的长度   AnimationTrack track = acRoo.getAnimationTrack(0);   animLength = 1000; // 缺省的长度,1秒   if (track != null){ KeyframeSequence ks = track.getKeyframeSequence(); if (ks != null)   animLength = ks.getDuration();   } } catch(Exception e){   e.printStackTrace(); } } public void pauseApp(){} public void destroyApp(boolean unconditional) throws MIDletStateChangeException{ myRefreshTimer.cancel(); myRefreshTimer = null; myRefreshTask = null; } public void paint(Graphics g){ if(g.getClipWidth() != viewport_width || g.getClipHeight() != viewport_height || g.getClipX() != viewport_x || g.getClipY() != viewport_y){   g.setColor(0x00);   g.fillRect(0, 0, myCanvas.getWidth(), myCanvas.getHeight()); } if ((myGraphics3D != null) && (myWorld != null)){ myGraphics3D.bindTarget(g); myGraphics3D.setViewport(viewport_x, viewport_y, viewport_width, viewport_height); myGraphics3D.render(myWorld); myGraphics3D.releaseTarget(); } } public void commandAction(Command cmd, Displayable disp) { if (cmd == exitCommand){   try{ destroyApp(false); notifyDestroyed();   }   catch(Exception e){ e.printStackTrace();   } } } private class RefreshTask extends TimerTask{ public void run(){   if(myCanvas !=null && myGraphics3D != null && myWorld != null{ int startTime = (int)System.currentTimeMillis(); int validity = myWorld.animate(startTime); myCanvas.repaint(viewport_x, viewport_y, viewport_width, viewport_height);   } } } class ExampleCanvas extends Canvas{ Example3D myRooMIDlet; int i = 0; ExampleCanvas(Example3D Testlet) { myRooMIDlet = Testlet; } void init() { } void destroy() { } protected void paint(Graphics g) { myRooMIDlet.paint(g); } protected void keyPressed(int i) { } protected void keyReleased(int i) { } protected void keyRepeated(int i) { } protected void pointerDragged(int x, int y) { } protected void pointerPressed(int x, int y) { } protected void pointerReleased(int x, int y) { } } }

为J2ME开发移动3D游戏之保留模式(3)

时间:2011-01-07

九、运行在模拟器中的例程

图1展示了例程在WTK模拟器中运行的结果。图中的袋鼠和田地看上去棒极了。如果设计者选择对其中任何对象改变一下的话,可以用the3D工具来完成,而在例程MIDlet中不需要作任何变化。

为J2ME开发移动3D游戏之保留模式 - 编程入门网

图1 例程在模拟器中运行的结果

十、结论

现在,你又看到一种使用JSR 184(也称移动3D API)的更高级的方式来创建3D应用程序。在保留模式下,设计者可以使用现有的3D建模工具来创建3D世界和其中的对象,然后把这些模型输出到M3G文件中。之后,应用程序只需装入该模型并在屏幕上绘制3D世界的视图即可。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号