DEADSOFTWARE

Initial commit.
[LongFlight.git] / src / code / kalter / longflight / Sprite.java
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;
8 /**
9 * Спрайт - основной графический элемент
10 *
11 * @author KalterFive
12 */
13 public class Sprite {
15 protected final Image image;
16 private int positionX;
17 private int positionY;
19 // события
20 private Vector eventListener;
22 public Sprite(Image image, int positionX, int positionY) {
23 this.image = image;
24 this.positionX = positionX;
25 this.positionY = positionY;
26 eventListener = new Vector(1);
27 }
29 public Sprite(String path, int positionX, int positionY)
30 throws IOException {
31 this(Image.createImage(path), positionX, positionY);
32 }
34 public void paint(Graphics graph) {
35 graph.drawImage(image, positionX, positionY, 0);
36 }
38 public void addEvent(EventListener event) {
39 eventListener.addElement(event);
40 }
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())) {
47 event.event();
48 }
49 }
50 }
52 public EventListener getEvent(int number)
53 throws ArrayIndexOutOfBoundsException {
54 return (EventListener) eventListener.elementAt(number);
55 }
57 // удалить событие без сдвига (то есть оnullить его)
58 public void removeEvent(int number)
59 throws ArrayIndexOutOfBoundsException {
60 eventListener.setElementAt(null, number);
61 }
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());
68 }
70 public void moveDown(int speed) {
71 positionY += speed;
72 }
74 public void moveRight(int speed) {
75 positionX += speed;
76 }
78 public void moveUp(int speed) {
79 moveDown(-speed);
80 }
82 public void moveLeft(int speed) {
83 moveRight(-speed);
84 }
86 public int getX() {
87 return positionX;
88 }
90 public int getY() {
91 return positionY;
92 }
94 public int getWidth() {
95 return image.getWidth();
96 }
98 public int getHeight() {
99 return image.getHeight();
102 protected void setX(int x) {
103 this.positionX = x;
106 protected void setY(int y) {
107 this.positionY = y;