仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 748|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA编程:J2ME 3D编程――第一个3D程序

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。编程|程序J2ME3D编程――第一个3D程序(附源代码)

更多文章请会见:http://blog.csdn.net/mailbomb



参考WTK2.2供应的demo,完成了第一个3D程序,固然很复杂,并且有些成绩还不是很分明,仍是把代码共享出来和乐意进修J2ME3D编程的伴侣一同进修。

关于3D编程的材料,能够查阅我的blog。



关于代码的编译和运转申明以下:

1、以下代码在J2MEWTK2.2上面编译经由过程。

2、代码分为两个文件:First3DCanvas.java和First3DMIDlet.java。

3、利用J2MEWTK2.2创建新的工程,主MIDlet类为:first3d.First3DMIDlet

4、将代码保留在你的工程目次下的first3d目次下。

5、将J2MEWTK安装目次下的

appsDemo3Descomsuperscapem3gwtksamplesetainedmodecontent目次中的swerve.m3g文件复制到你的工程目次下的res目次下。

6、你的工程创建后,设置工程,经由过程WTK界面中的“设置”按钮翻开设置窗口,在“API选择”中,设置“方针平台”为:自界说;“简档”为“MIDP2.0”;“设置”为“CLDC1.1”;选中“Mobile3DGraphicsforJ2ME(JSR184)”。

7、如许你就能够编译和运转以下代码了。



源代码以下:

//First3DMIDlet.java

packagefirst3d;



importjavax.microedition.midlet.*;

importjavax.microedition.lcdui.*;



publicclassFirst3DMIDletextendsMIDlet{

privateFirst3DCanvasdisplayable=newFirst3DCanvas();



publicvoidstartApp(){

Display.getDisplay(this).setCurrent(displayable);

}



publicvoidpauseApp(){}



publicvoiddestroyApp(booleanunconditional){}

}







//First3Dcanvas.java

packagefirst3d;



importjavax.microedition.lcdui.*;

importjavax.microedition.m3g.*;

importjava.util.*;



/**

*第一个3D程序

*/

publicclassFirst3DCanvas

extendsCanvas

implementsRunnable{

/**World对象*/

privateWorldmyWorld=null;

/**Graphics3D对象*/

privateGraphics3Dg3d=Graphics3D.getInstance();

/**Camera对象*/

privateCameracam=null;

privateintviewport_x;

privateintviewport_y;

privateintviewport_width;

privateintviewport_height;

privatelongworldStartTime=0;

//重绘工夫

privateintvalidity=0;





publicFirst3DCanvas(){

//启动重绘界面的线程

Threadthread=newThread(this);

thread.start();

try{

//导进3D图片

myWorld=(World)Loader.load("/swerve.m3g")[0];

viewport_x=0;

viewport_y=0;

viewport_width=getWidth();

viewport_height=getHeight();

cam=myWorld.getActiveCamera();

//设置cam对象

float[]params=newfloat[4];

inttype=cam.getProjection(params);

if(type!=Camera.GENERIC){

//calculatewindowaspectratio

floatwaspect=viewport_width/viewport_height;



if(waspect<params[1]){

floatheight=viewport_width/params[1];

viewport_height=(int)height;

viewport_y=(getHeight()-viewport_height)/2;

}

else{

floatwidth=viewport_height*params[1];

viewport_width=(int)width;

viewport_x=(getWidth()-viewport_width)/2;

}

}

worldStartTime=System.currentTimeMillis();

}

catch(Exceptione){}

}



protectedvoidpaint(Graphicsg){

//扫除背景

g.setColor(0x00);

g.fillRect(0,0,getWidth(),getHeight());

//和3D对象绑定

g3d.bindTarget(g);

g3d.setViewport(viewport_x,viewport_y,viewport_width,viewport_height);

longstartTime=System.currentTimeMillis()-worldStartTime;

validity=myWorld.animate((int)startTime);

try{

g3d.render(myWorld);

}

finally{

g3d.releaseTarget();

}

}



publicvoidrun(){

try{

while(true){

//重画图形

repaint(viewport_x,viewport_y,viewport_width,viewport_height);

}

}catch(Exceptione){}

}

}


微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
若天明 该用户已被删除
沙发
发表于 2015-1-21 10:44:26 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-30 15:47:36 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
分手快乐 该用户已被删除
地板
发表于 2015-1-31 14:50:42 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
柔情似水 该用户已被删除
5#
发表于 2015-2-1 16:42:25 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
乐观 该用户已被删除
6#
发表于 2015-2-11 05:05:57 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
再见西城 该用户已被删除
7#
 楼主| 发表于 2015-3-1 21:31:27 | 只看该作者
是一种为 Internet发展的计算机语言
蒙在股里 该用户已被删除
8#
发表于 2015-3-7 02:17:45 | 只看该作者
是一种使用者不需花费很多时间学习的语言
山那边是海 该用户已被删除
9#
发表于 2015-3-20 23:44:36 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
再现理想 该用户已被删除
10#
发表于 2015-3-26 12:11:10 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
简单生活 该用户已被删除
11#
发表于 2015-3-26 13:13:40 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
灵魂腐蚀 该用户已被删除
12#
发表于 2015-4-2 17:41:53 | 只看该作者
是一种突破用户端机器环境和CPU
若相依 该用户已被删除
13#
发表于 2015-4-3 00:52:58 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
谁可相欹 该用户已被删除
14#
发表于 2015-4-3 04:29:45 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
精灵巫婆 该用户已被删除
15#
发表于 2015-4-6 03:54:54 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
不帅 该用户已被删除
16#
发表于 2015-4-14 22:31:47 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
兰色精灵 该用户已被删除
17#
发表于 2015-4-15 20:40:10 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
老尸 该用户已被删除
18#
发表于 2015-4-16 19:08:09 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
变相怪杰 该用户已被删除
19#
发表于 2015-4-16 22:11:58 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表