再见西城 发表于 2015-1-18 11:36:00

JAVA编程:J2ME 3D编程――第一个3D程序

市场分额,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");

viewport_x=0;

viewport_y=0;

viewport_width=getWidth();

viewport_height=getHeight();

cam=myWorld.getActiveCamera();

//设置cam对象

float[]params=newfloat;

inttype=cam.getProjection(params);

if(type!=Camera.GENERIC){

//calculatewindowaspectratio

floatwaspect=viewport_width/viewport_height;



if(waspect<params){

floatheight=viewport_width/params;

viewport_height=(int)height;

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

}

else{

floatwidth=viewport_height*params;

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的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

第二个灵魂 发表于 2015-1-30 15:47:36

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

分手快乐 发表于 2015-1-31 14:50:42

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

柔情似水 发表于 2015-2-1 16:42:25

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

乐观 发表于 2015-2-11 05:05:57

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

再见西城 发表于 2015-3-1 21:31:27

是一种为 Internet发展的计算机语言

蒙在股里 发表于 2015-3-7 02:17:45

是一种使用者不需花费很多时间学习的语言

山那边是海 发表于 2015-3-20 23:44:36

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

再现理想 发表于 2015-3-26 12:11:10

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

简单生活 发表于 2015-3-26 13:13:40

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

灵魂腐蚀 发表于 2015-4-2 17:41:53

是一种突破用户端机器环境和CPU

若相依 发表于 2015-4-3 00:52:58

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

谁可相欹 发表于 2015-4-3 04:29:45

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

精灵巫婆 发表于 2015-4-6 03:54:54

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

不帅 发表于 2015-4-14 22:31:47

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

兰色精灵 发表于 2015-4-15 20:40:10

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

老尸 发表于 2015-4-16 19:08:09

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。

变相怪杰 发表于 2015-4-16 22:11:58

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
页: [1]
查看完整版本: JAVA编程:J2ME 3D编程――第一个3D程序