基于j2me手机小游戏,越j2me 简单小游戏越好,谢...

您所在的位置: &
为基于J2ME的手机开发移动3D游戏(1)
为基于J2ME的手机开发移动3D游戏(1)
朱先忠编译
3D图形是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息。假定你已对3D API比较熟悉并了解3D图形是如何加入到移动Java应用程序中的。本文将继续告诉你怎样使用3D造型软件以使编码和设计更为简单。
既然现在你已对3D API比较熟悉并了解了3D图形是如何加入到移动Java应用程序中的。下面将继续告诉你怎样使用3D造型软件以使编码和设计更为简单。
如今,3D图形几乎是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息而获得了成功。如前文中所述,以立即模式和手工编码建立所有的3D对象的方式进行开发速度很慢且很复杂。应用程序中多边形的所有角点必须在数组中独立编码。在JSR 184中,这称为立即模式。
另外一种更高级的模式称为保留模式,它允许设计者使用诸如3D Max Studio等3D建模软件来设计场景图,然后把它们应用在程序中。
二、3D编辑器
现在,最流行的商业动画制作软件应是3D Studio Max,它支持输出模型或场景图到M3G格式(JSR 184中指定的文件格式)。该文件格式是专门制订的,以适用于移动设备的特有需要。然而,3D Studio Max非常昂贵,即使它是一个很好的工具,也可能并不适合于任何一个人。
Superscape公司有他自己的Swerve产品家族(Swerve Studio,Swerve Client,Swerve Content),以帮助软件开发者来开发基于3D Java的本机应用程序。遗憾的是,Swerve Studio仅适于有限数目的对Superscape非常熟悉的开发者。
还有一个自由工具可以选择使用:Blender。Blender是一个开源的3D造型工具,其实它的功能相当强大。你可以用Blender来进行任何3D设计-从简单的造型到完整的动画制作。尽管现在还没有输出工具来输出Blender模型到M3G文件中,但是可能很快就出现一些可用的工具(因为Blender是开源的)。
如何在MIDP应用程序中使用M3G 文件呢?首先,你需要一个已有某种3D模型的M3G文件。你可以用Google引擎快速查找一下,也可以使用和WirelessToolkit 2.2(在Demo3D 文件夹下)开发包一起发布的现成文件。在本文中,我们将对Sun的Pogoroo例程(编者注:Sun开发工具包自带例程)作深度修改(简化)。我们不让它动起来或者做任何奇特的事情,而仅仅在屏幕上展示各个对象。
四、加载World
首先,要从M3D文件中加载World。在pogoroo.m3g文件中,你会看到一只袋鼠在一根弹簧单高跷杆上跳跃,其身边是一片绿茵。下面的列表1调用了加载器类的方法load()。
列表1. 加载
try { //从M3D文件中加载World myWorld = (World)Loader.load("/pogoroo.m3g")[0]; getObjects(); setupAspectRatio();}catch(Exception e) { e.printStackTrace();}
五、从3D世界中取得对象
3D世界已经被加载,现在你必须从中取得各个对象(见列表2)。这里,3D世界中有四个对象,其中之一是有关动画(袋鼠在单脚跳)的信息。你可以使用World的find()方法来取得这些对象。
列表2. 从3D World中取得对象
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();}
六、设置窗口宽高比例
你必须设置窗口的宽高比例以使对象能够正确着色。列表3中的代码是未改动的-基本上同Sun的例子一样。首先,检查画布的宽度和高度,然后根据相机的类型来计算宽高比例。
列表3. 设置宽高比例
void setupAspectRatio() { viewport_x = 0; viewport_y = 0; viewport_width = myCanvas.getWidth(); viewport_height = myCanvas.getHeight(); Camera cam = myWorld.getActiveCamera(); float[] params = new float[4]; int type = cam.getProjection(params); if(type != Camera.GENERIC) {//计算窗口的宽高比float waspect=viewport_width/viewport_if (waspect float height = viewport_width/params[1]; viewport_height=(int) viewport_y=(myCanvas.getHeight()-viewport_height)/2;}else { float width = viewport_height*params[1]; viewport_width=(int) viewport_x=(myCanvas.getWidth()-viewport_width)/2;} }}
关于&&&&&&的更多文章
在Android系统从诞生到现在的短短几年时间里,它凭借操作的易用
/art/962.htm
讲师: 135人学习过讲师: 10人学习过讲师: 38人学习过
春运大军前天正式启动了。昨天的新闻有几条不怎么好的
每年的一月份大约都是在看似忙忙碌碌中度过的。最近一
自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源
本书全面深入地介绍了在网络的日常管理中,网络管理员必须掌握的知识,包括系统基本管理、性能调优、故障恢复、域控制器管理、存
51CTO旗下网站>> J2ME 手机小游戏
J2ME 手机小游戏
所属分类:
下载地址:
HitBrick.rar文件大小:124.92 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
J2ME 手机小游戏-J2ME handsets small game
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
&HitBrick&0.00 B0% 22-01-05
HitBrick.jad228.00 B04-12-04 02:48
HitBrick.jar52.21 kB03-12-04 01:59
MANIFEST.MF176.00 B04-12-04 02:48
&bin&0.00 B22-01-05 16:32
HitBrick$Brick.class858.00 B04-12-04 02:48
HitBrick$ImageMover.class1.82 kB04-12-04 02:48
HitBrick$MoveObject.class1.68 kB04-12-04 02:48
HitBrick$MyCanvas$Ball.class3.79 kB04-12-04 02:48
HitBrick$MyCanvas$Plate.class2.91 kB04-12-04 02:48
HitBrick$MyCanvas.class8.68 kB04-12-04 02:48
HitBrick$NormalObject.class1.53 kB04-12-04 02:48
HitBrick$RandomG.class532.00 B04-12-04 02:48
HitBrick.class1.53 kB04-12-04 02:48
&classes&0.00 B22-01-05 16:32
&lib&0.00 B22-01-05 16:32
project.properties64.00 B04-12-04 02:48
j1.PNG1.01 kB25-11-04 13:48
j10.PNG2.69 kB03-12-04 01:06
j11.PNG2.71 kB03-12-04 01:31
j2.PNG803.00 B28-11-04 21:52
j3.PNG17.87 kB28-11-04 22:09
j5.JPG813.00 B29-11-04 11:42
j5.PNG768.00 B29-11-04 02:11
j6.JPG919.00 B29-11-04 11:42
j6.PNG1.14 kB29-11-04 02:31
j7.JPG1,023.00 B29-11-04 11:42
j7.PNG1.30 kB29-11-04 03:26
j8.PNG177.00 B01-12-04 17:54
j9.PNG176.00 B02-12-04 13:15
Thumbs.db23.50 kB03-12-04 01:31
&pic&0.00 B22-01-05 16:32
&res&0.00 B22-01-05 16:32
20.27 kB04-12-04 02:48
HitBrick.java.bak20.27 kB04-12-04 02:48
&src&0.00 B22-01-05 16:32
HitBrick$Brick.class858.00 B04-12-04 02:48
HitBrick$ImageMover.class1.73 kB04-12-04 02:48
HitBrick$MoveObject.class1.58 kB04-12-04 02:48
HitBrick$MyCanvas$Ball.class3.53 kB04-12-04 02:48
HitBrick$MyCanvas$Plate.class2.62 kB04-12-04 02:48
HitBrick$MyCanvas.class7.79 kB04-12-04 02:48
HitBrick$NormalObject.class1.49 kB04-12-04 02:48
HitBrick$RandomG.class532.00 B04-12-04 02:48
HitBrick.class1.53 kB04-12-04 02:48
&tmpclasses&0.00 B22-01-05 16:32
&tmplib&0.00 B22-01-05 16:32
&HitBrick&0.00 B22-01-05 16:32
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载HitBrick.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:51.003ms - init:0.1;find:0.7;t:0.5;tags:0.3;related:11.8;comment:0.1; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧扫描二维码,下载文件到手机
用户应遵守著作权法,尊重著作权人合法权益,不违法上传、存储并分享他人作品。举报邮箱:
京网文[0号 京ICP证100780号

参考资料

 

随机推荐