J2ME中的 GAME API介绍[6]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

 

如果愿意,可以为Sprite定义任意的帧序列。帧序列必须至少包含一个元素,并且每个元素都必须是一个有效的帧的索引号。通过定义新的帧序列,开发者可以方便地以任意想要的顺序来显示Sprite的帧;帧可以重复,忽略,或者以相反的顺序显示,等等。

 

例如,下图显示了一个特定的序列如何被用于动画显示一个蚊子。帧序列被设计为蚊子振动翅膀3次,然后在下次循环前暂停一会儿。

Special Frame Sequence

每次调用nextFrame()方法就会更新显示,动画效果如下:

 

要创建一个静态的Sprite,可以调用public Sprite(Image image),通过提供的图像创建一个新的Sprite。如果要创建动态的Sprite,就必须使用public Sprite(Image image,int frameWidth, int frameHeight)

 

帧的大小由frameWidthframeHeight指定,所有帧的大小必须相等。可以在图像中水平、竖直或以方格形式排列。源图像的宽度必须是帧宽度的整数倍,高度必须是帧高度的整数倍。如果image的宽度或高度不是frameWidthframeHeight的整数倍,将会抛出IllegalArgumentException异常。

 

6.3.3   Reference Pixel

作为Layer的一个子类,Sprite继承了很多方法来设置和获取位置,如setPosition(x,y)getX()getY()。这些方法定义的位置均以Sprite视图区域的左上角像素点为依据。然而,在某些情况下,根据Sprite的其它像素点来定位Sprite更加方便,尤其是在Sprite上应用某些转换。

 

因此,Sprite包含一个参考像素点(reference pixel)的概念。参考像素点通过指定其在Sprite未经变换的帧内的某一点来定义,使用defineReferencePixel(x,y)方法。缺省的,参考像素点定义在帧的(0,0)像素点。如果有必要,参考像素点也可以定义在帧区域以外。

 

在这个例子中,参考像素点被定义在猴子悬挂的手上:

Defining The Reference Pixel

本文关键:J2ME中的 GAME API介绍
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top