1 package code
.kalter
.longflight
.screen
;
3 import code
.kalter
.longflight
.EventListener
;
4 import code
.kalter
.longflight
.Loader
;
5 import code
.kalter
.longflight
.LongFlight
;
6 import code
.kalter
.longflight
.Sprite
;
7 import java
.io
.IOException
;
8 import javax
.microedition
.lcdui
.Image
;
15 public class Menu
extends Screen
{
17 private static final int COUNT_CHOISE
= 3;
19 private static final int FIGHT
= 0;
20 private static final int HSCORE
= 1;
21 private static final int ABOUT
= 2;
23 private final Sprite
[] choise
;
24 private final Sprite
[] selectChoise
;
25 private final Sprite window
;
26 private final Sprite leftSoft
;
27 private final Sprite rightSoft
;
28 private final Image downPanel
;
32 public Menu() throws IOException
{
34 Loader loader
= Loader
.getInstance();
37 Image windowImage
= loader
.getImage("/gfx/menu/window.png");
38 int windowX
= (screenW
- windowImage
.getWidth()) / 2;
39 int windowY
= (screenH
- windowImage
.getHeight()) / 2;
40 window
= new Sprite(windowImage
, windowX
, windowY
);
41 //===========================================================[Пасхалка]
42 window
.addEvent(new EventListener() {
45 return (getXReleased() > getXPressed())
46 && (window
.isEntrySet(getXPressed(), getYPressed()))
47 && (window
.isEntrySet(getXReleased(), getYReleased()))
48 && (Math
.abs(getXPressed() - getXReleased())
49 > window
.getWidth() / 2);
59 Image leftSoftImage
= loader
.getImage("/gfx/awt/left_soft.png");
61 int leftSoftY
= screenH
- leftSoftImage
.getHeight();
62 leftSoft
= new Sprite(leftSoftImage
, leftSoftX
, leftSoftY
);
63 leftSoft
.addEvent(new EventListener() {
66 return leftSoft
.isEntrySet(getXPressed(), getYPressed());
76 Image rightSoftImage
= loader
.getImage("/gfx/awt/right_soft.png");
77 int rightSoftX
= screenW
- rightSoftImage
.getWidth();
78 int rightSoftY
= screenH
- rightSoftImage
.getHeight();
79 rightSoft
= new Sprite(rightSoftImage
, rightSoftX
, rightSoftY
);
80 rightSoft
.addEvent(new EventListener() {
83 return rightSoft
.isEntrySet(getXPressed(), getYPressed());
93 downPanel
= loader
.getImage("/gfx/awt/down_panel.png");
96 Image choiseCrop
= loader
.getImage("/gfx/menu/choise.png");
97 choise
= new Sprite
[COUNT_CHOISE
];
98 selectChoise
= new Sprite
[COUNT_CHOISE
];
99 for (int i
= 0; i
< COUNT_CHOISE
; i
++) {
101 Image c
= Image
.createImage(choiseCrop
, 0, i
* 22, 102, 22, 0);
102 int choiseX
= (screenW
- 102) / 2;
103 int choiseY
= window
.getY() + 34 + i
* 24;
104 choise
[i
] = new Sprite(c
, choiseX
, choiseY
);
107 Image sc
= Image
.createImage(choiseCrop
, 102, i
* 22, 102, 22, 0);
108 int selectChoiseX
= choise
[i
].getX();
109 int selectChoiseY
= choise
[i
].getY();
110 selectChoise
[i
] = new Sprite(sc
, selectChoiseX
, selectChoiseY
);
113 // adding event listener for choise about of "fight"
114 choise
[FIGHT
].addEvent(new EventListener() {
116 public boolean is() {
117 return choise
[FIGHT
].isEntrySet(getXPressed(), getYPressed());
121 public void event() {
126 selectChoise
[FIGHT
].addEvent(choise
[FIGHT
].getEvent(0));
128 // adding event listener for choise about of "high score"
129 choise
[HSCORE
].addEvent(new EventListener() {
131 public boolean is() {
132 return choise
[HSCORE
].isEntrySet(getXPressed(), getYPressed());
136 public void event() {
141 selectChoise
[HSCORE
].addEvent(choise
[HSCORE
].getEvent(0));
143 // adding event listener for choise about of "about"
144 choise
[ABOUT
].addEvent(new EventListener() {
146 public boolean is() {
147 return choise
[ABOUT
].isEntrySet(getXPressed(), getYPressed());
151 public void event() {
156 selectChoise
[ABOUT
].addEvent(choise
[ABOUT
].getEvent(0));
160 public void start() {
161 final int previosScreenID
= LongFlight
.link
.getPreviosScreenID();
162 if (previosScreenID
== LongFlight
.CRASH
163 || previosScreenID
== LongFlight
.PAUSE
) {
166 setDate(39, screenH
- 9);
172 while (getGameLoop()) {
176 LongFlight
.link
.sleep(20);
182 public void keyPressed(int keyCode
) {
183 switch (getGameAction(keyCode
)) {
208 public void keyReleased(int keyCode
) {
210 //=======================================================[Пасхалка]
218 public void pointerReleased(int x
, int y
) {
219 super.pointerReleased(x
, y
);
220 window
.exciteEvent();
224 public void pointerPressed(int x
, int y
) {
225 super.pointerPressed(x
, y
);
226 rightSoft
.exciteEvent();
227 leftSoft
.exciteEvent();
228 choise
[FIGHT
].exciteEvent();
229 choise
[HSCORE
].exciteEvent();
230 choise
[ABOUT
].exciteEvent();
233 private void upPressed() {
240 private void downPressed() {
242 if (position
>= COUNT_CHOISE
) {
243 position
= COUNT_CHOISE
- 1;
247 private void firePressed() {
251 private void rightSoftPressed() {
252 LongFlight
.link
.destroyApp(true);
255 private void leftSoftPressed() {
258 LongFlight
.link
.setScreen(LongFlight
.SELECT_SHIP
);
262 LongFlight
.link
.setScreen(LongFlight
.HIGH_SCORE
);
266 LongFlight
.link
.setScreen(LongFlight
.ABOUT
);
271 private void update() {
275 private void paint() {
276 space
.paint(graphics
);
277 window
.paint(graphics
);
278 for (int i
= 0; i
< COUNT_CHOISE
; i
++) {
280 selectChoise
[i
].paint(graphics
);
282 choise
[i
].paint(graphics
);
285 for (int i
= 0; i
< screenW
; i
+= 128) {
286 graphics
.drawImage(downPanel
, i
, screenH
- 18, 0);
288 leftSoft
.paint(graphics
);
289 rightSoft
.paint(graphics
);