1 package code
.kalter
.longflight
;
3 import java
.io
.IOException
;
4 import java
.util
.Vector
;
5 import javax
.microedition
.lcdui
.Graphics
;
6 import javax
.microedition
.lcdui
.Image
;
9 * Спрайт - основной графический элемент
15 protected final Image image
;
16 private int positionX
;
17 private int positionY
;
20 private Vector eventListener
;
22 public Sprite(Image image
, int positionX
, int positionY
) {
24 this.positionX
= positionX
;
25 this.positionY
= positionY
;
26 eventListener
= new Vector(1);
29 public Sprite(String path
, int positionX
, int positionY
)
31 this(Image
.createImage(path
), positionX
, positionY
);
34 public void paint(Graphics graph
) {
35 graph
.drawImage(image
, positionX
, positionY
, 0);
38 public void addEvent(EventListener event
) {
39 eventListener
.addElement(event
);
42 // попытаться возбудить события
43 public void exciteEvent() {
44 for (int i
= 0; i
< eventListener
.size(); i
++) {
45 EventListener event
= (EventListener
) eventListener
.elementAt(i
);
46 if ((event
!= null) && (event
.is())) {
52 public EventListener
getEvent(int number
)
53 throws ArrayIndexOutOfBoundsException
{
54 return (EventListener
) eventListener
.elementAt(number
);
57 // удалить событие без сдвига (то есть оnullить его)
58 public void removeEvent(int number
)
59 throws ArrayIndexOutOfBoundsException
{
60 eventListener
.setElementAt(null, number
);
63 public boolean isEntrySet(int positionX
, int positionY
) {
64 return (positionX
>= this.positionX
)
65 && (positionX
<= this.positionX
+ getWidth())
66 && (positionY
>= this.positionY
)
67 && (positionY
<= this.positionY
+ getHeight());
70 public void moveDown(int speed
) {
74 public void moveRight(int speed
) {
78 public void moveUp(int speed
) {
82 public void moveLeft(int speed
) {
94 public int getWidth() {
95 return image
.getWidth();
98 public int getHeight() {
99 return image
.getHeight();
102 protected void setX(int x
) {
106 protected void setY(int y
) {