飘灵儿 发表于 2015-1-18 11:21:03

来看使用J2ME开辟挪动3D游戏之3D图形API

一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
简述
如今,挪动游戏和挪动使用开辟极其抢手!游戏中必要偶然髦大度的图形,其计划尺度比之前任什么时候候都要高。本文将告知你如何用酷毙的挪动3D图形API为J2ME设备开辟3D图形游戏。
假如你在用MIDP1.0举行用户接口编程,那末有两条路你能够选择:利用初级的UI类大概统统由你本人重新入手下手。作为游戏开辟者,第一种选择常常是不成能的;这是为何游戏开辟者不能不为他们的初级游戏开辟本人的3D引擎的缘故原由。无疑,这必要支付大批的工夫和勉力,而缺少浮点数撑持的CLDC1.0(MIDP1.0恰是建于其上)对成绩的办理没有多年夜匡助。
在MIDP2.0中,有一个可选的叫挪动3D图形API的软件包,大概叫JSR184。该API是第一个基于Java尺度开辟的挪动设备上的三维图形软件包。该API既有初级又有初级图形特性;个中,初级特性称为保存形式,初级特性称为当即形式。保存形式使得开辟者有大概利用场景图形并使场景中的物体依据假造相机和灯光的地位举行本身的着色。当即形式可以同意使用程序间接举行物体绘制。假如必要,能够在统一个使用程序中利用这两种形式。本文侧重先容当即形式。
3DAPI
让我们以枚举息争释该3DAPI中的类作为入手下手。除这些API外,JSR184还包括了一个场景图形布局和一个响应的文件格局以无效地办理和设置3D内容。该文件格局界说了一种m3g文件,这类文件典范地从3D建模文件使用程序直达换而来。
表1.3DAPI类
类形貌AnimationController把持动画按次。AnimationTrack把一个KeyframeSequence统一个AnimationController相干联。Appearance界说一个网眼(Mesh)或一个Spring3D的着色属性的一组对象。Background界说视图是如何被扫除的。Camera一个场景图极点,它界说了场景中察看者的地位和从3D到2D的投影。CompositingMode一个Appearance类,它封装了每个像素的分解属性。Fog一个Appearance类,它包括了雾化的有关属性。Graphics3D一个独自的3D图形高低文。一切的着色操纵都是在该类中的render()办法中完成的。Group一个场景图形结点,它存储了一个无序的结点集作为它的子结点。Image2D一个二维图象,可用于纹理,背景,大概精灵图象。IndexBuffer该类界说了怎样把极点毗连起来以构成一个多少体。KeyframeSequence封装了一系列的具偶然间戳和矢量值的关头帧的动画数据。Light形貌了分歧范例的光源。Loader下载和反串行化图形结点及结点成份,和全部场景图形。Material封装了举行光学盘算的材质属性。Mesh形貌了一个3D对象,它是用多边形面界说的。MorphingMesh形貌了一个极点-变形的多边形网眼。Node一切场景图形结点的笼统基类。其五个详细子类是:Camera,Mesh,Sprite3D,Light和Group。Object3D一切能够成为3D天下中构成部分的对象的笼统基类。PolygonMode封装了多边形级别属性。RayIntersection存储了关于支解的Mesh或Sprite3D的援用,和有关支解点的信息。SkinnedMesh形貌了一个框架动画的多边形网眼。Sprite3D用3D地位来形貌一个2D图象。Texture2D封装了一个2D纹理图象和一个属性汇合,这些属性指出该图象是怎样使用到子网眼上的。Transform一个通用的4x4的浮点数矩阵,用来形貌一个变更。TransformableNode和Texture2D类的笼统基类。TriangleStripArray界说了一个三角形带数组。VertexArray一个整型矢量数组,形貌了极点地位,法线,色彩大概纹理坐标。VertexBuffer存储关于VertexArrays的援用,它包括了一个极点集的地位,色彩,法线,和纹理坐标。World一个出格的Group结点,它作为场景图最顶层的容器。
<p>
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?

老尸 发表于 2015-1-20 20:52:09

关于设计模式的资料,还是向大家推荐banq的网站 http://www.ckuyun.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

爱飞 发表于 2015-2-3 19:25:22

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

金色的骷髅 发表于 2015-2-9 03:57:04

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

莫相离 发表于 2015-2-9 22:00:17

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

分手快乐 发表于 2015-2-20 23:10:40

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

乐观 发表于 2015-3-6 18:55:23

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

小妖女 发表于 2015-3-9 01:10:23

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

山那边是海 发表于 2015-3-16 19:27:36

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

仓酷云 发表于 2015-3-22 23:53:36

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
页: [1]
查看完整版本: 来看使用J2ME开辟挪动3D游戏之3D图形API