所有计算机游戏的图形的核心都是动画,没有动画,也就没有移动,没有了移动,只能玩猜字游戏和益智游戏。在MIDP 2.0 API包含了对精灵动画的支持。在MIDP编程中,使得精灵动画成为可能的两个主要的类是Layer类和Sprite类。Layer类对一个叫做图层(layer)的通用图形对象建模,该对象充当精灵和其他图形游戏对象的基础。可以把游戏中的任何离散的可视元素都看作一个单独的图层。从编程的角度来看,Layer类跟踪一个可视元素的位置、宽度、高度和可见性等信息。
Layer
类是一个抽象类,即意味着其不可以直接创建一个
Layer
对象的实例。但是可以创建一个派生自
Layer
的对象的实例,例如
Sprite
或者设计者从
Sprite
派生来的类。
Layer
类的子类必须实现它们自己的
Paint()
方法,以便它们能够绘图。图层的初始位置是(
0
,
0
)
,它会相对于传递给图层的
paint()
方法的
Grphics
对象的坐标系进行解释。
下面是定义于
Layer
类中的方法,在使用图层和精灵的时候,这些方法都很重要。
·
getX
()
——获得图层左上角的
X
位置;
·
getY
()
——获得图层左上角的
Y
位置;
·
getWidth
()
——获得图层的宽度;
·
getHeight()
——获得图层的高度;
·
setPosition
()
——设置图层左上角的
XY
位置;
·
move()
——
根据给定的
XY
量来移动图层;
·
isVisible()
——获得图层的可见性;
·
setVisible()
——设置图层的可见性;
·
paint()
——在派生自
Layer
类的子类中重写。
Sprite
类通过提供额外的两维图形对象所需的功能,从而构建于Layer类之上。
Sprite
类所提供的额外的功能主要包括:
·基于图形的精灵,以及支持多帧图像;
·一个精灵的图像可以变形(游戏,反射等);
·可以定义一个参考像素,作为精灵变形和定位的基础;
·对于带有多帧图像的
精灵,图像显示的顺序可以精确设定;
·精灵之间的冲突可以使用矩形,缩小的矩形或图像数据来进行冲突检测;
Sprite
类为手机游戏编程提供了相当多的功能。如果要根据一个图像来创建一个精灵,只要把一个新创建的
Image
对象传递到
Sprite
的构造函数中即可,在我的游戏中实现如下:
try{
Sprite ShipSprite= new Sprite(Image.createImage(“/*.png”));
ShipSprite.setPosition(0,0);
}
catch (IOException e){
System.err.println(“^_^对不起,下载图片发生错误^_^”);
}
Sprite ShipSprite= new Sprite(Image.createImage(“/*.png”));
ShipSprite.setPosition(0,0);
}
catch (IOException e){
System.err.println(“^_^对不起,下载图片发生错误^_^”);
}
本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/204441,如需转载请自行联系原作者