服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

使用jsr-184里的sprite3d对象

        在这里我们将向你介绍如何使用sprite3d类,并向你讲述基于索尼爱立信移动手机jp3(java platform 3)或jp4中使用该类特殊效果的优势。

        索尼爱立信采用的java平台能满足开发者开发手机上的各种应用程序。目前,索尼爱立信上使用的java平台有5个版本,这些版本都是和开发者共同完成的,并将协助开发者在游戏可玩性上不断提高,新的java平台将引入这一特点,并公之于众。

        在索尼爱立信的java平台上,开发者可以修改结构,例如:cldc1.0或cldc1.1,并可以按不同的需求增加可选包,例如:jsr-82等。

下面是在市面上支持java平台的索尼爱立信主要特点和机型。
jp = java platform
使用jsr-184里的sprite3d对象(图一)

        sprite3d实际上就是把一张2d的图片放在3d的空间里。sprite总是正对着camera的,而不考虑camera的角度和world的旋转。

        sprite3d有两种类型:
 1:固定模式(unscaled)
           sprite的大小是由剪裁矩形的宽和高的象素值决定的。
 2:缩放模式(scaled)
           sprite着色的大小取决于该对象与active camera的距离。

       在基于jp3或jp4的真实目标设备上实现sprite的特殊效果时。sprite不会在同一位置绘画,下面让我们看一个例子:
 

这是一张100*10象素的图片,我们用它来生成一个sprite,每一帧为10象素。

使用jsr-184里的sprite3d对象(图二)

这是在基于jp3或jp4手机上的特效,例如:索尼爱立信k700

使用jsr-184里的sprite3d对象(图三)

这是在模拟器或基于jp5手机上的特效,例如:索尼爱立信k750和k600

 

   通过以上了解,在使用sprite3d时,开发者需要为不同的目标设备改写应用程序。

 

   需要注意的是,在使用精灵的缩放模式时,sprite必须按比例增加,增加的比例该sprite帧的个数相等的(你应该查看你的目标设备是如何实现的,在模拟器上却不需要)。

 

   我们再看一个例子:

compositingmode cm = new compositingmode();

cm.setblending(compositingmode.alpha);

 

appearance appearance = new appearance();

appearance.setcompositingmode(cm);

 

sprite3d = new sprite3d(false, new image2d(image2d.rgba, teximg), appearance);

sprite3d.scale(10.0f, 1.0f, 1.0f);//假设该精灵由10帧组成

sprite3d.setcrop(0, 0, 10, 10);

 

    要做成这种特殊颜色效果,首先要创建一张由这些颜色组成的png图片,并创建一个格式为rgba的image2d的对象,然后添加compositingmode到appearance中。

 

    如果你要使用缩放模式的精灵,你必须通知并使用transform类去移动精灵,精灵将会按一定缩放比例变换。

 

sprite3d.scale(6.0f, 1.0f, 1.0f);

sprite3d.translate(6.0f, 0.0f, 0.0f);//与posttranslate(1.0f, 0.0f, 0.0f)方法同样的结果

transform.posttranslate(1.0f, 0.0f, 0.0f);

sprite3d.settransform(transform);


 

扫描关注微信公众号