DEADSOFTWARE

License project under GNU GPL 3.
[LongFlight.git] / src / code / kalter / longflight / screen / Crash.java
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;
10 /**
11 * Экран информации о уничтожении
12 *
13 * @author Kalter
14 */
15 public class Crash extends Screen {
17 private final Sprite window;
18 private final Sprite leftSoft;
19 private final Sprite rightSoft;
20 private final Image downPanel;
22 public Crash() throws IOException {
23 Loader loader = Loader.getInstance();
25 // window
26 Image windowImage = loader.getImage("/gfx/crash/window.png");
27 int windowX = (screenW - windowImage.getWidth()) / 2;
28 int windowY = (screenH - windowImage.getHeight()) / 2;
29 window = new Sprite(windowImage, windowX, windowY);
30 // здесь для окошка не обрабатываются события
32 // right soft
33 Image rightSoftImage = loader.getImage("/gfx/awt/right_soft.png");
34 int rightSoftX = screenW - rightSoftImage.getWidth();
35 int rightSoftY = screenH - rightSoftImage.getHeight();
36 rightSoft = new Sprite(rightSoftImage, rightSoftX, rightSoftY);
37 rightSoft.addEvent(new EventListener() {
38 // override
39 public boolean is() {
40 return rightSoft.isEntrySet(getXPressed(), getYPressed());
41 }
43 // override
44 public void event() {
45 keyPressed(LEFT_SOFT);
46 }
47 });
49 //left soft
50 Image leftSoftImage = loader.getImage("/gfx/awt/left_soft.png");
51 int leftSoftX = 0;
52 int leftSoftY = screenH - leftSoftImage.getHeight();
53 leftSoft = new Sprite(leftSoftImage, leftSoftX, leftSoftY);
54 leftSoft.addEvent(new EventListener() {
55 // override
56 public boolean is() {
57 return leftSoft.isEntrySet(getXPressed(), getYPressed());
58 }
60 // override
61 public void event() {
62 keyPressed(LEFT_SOFT);
63 }
64 });
66 // down panel
67 downPanel = loader.getImage("/gfx/awt/down_panel.png");
68 }
70 // override
71 public void start() {
72 setDate(39, screenH - 9);
73 super.start();
74 }
76 // override
77 public void run() {
78 while (getGameLoop()) {
79 fps.process();
80 update();
81 paint();
82 LongFlight.link.sleep(20);
83 fps.max();
84 }
85 }
87 // override
88 public void keyPressed(int keyCode) {
89 switch (getGameAction(keyCode)) {
90 case FIRE:
91 keyCode = LEFT_SOFT;
92 break;
93 }
94 switch (keyCode) {
95 case LEFT_SOFT:
96 case RIGHT_SOFT:
97 LongFlight.link.setScreen(LongFlight.MENU);
98 break;
99 }
102 // override
103 public void pointerPressed(int x, int y) {
104 super.pointerPressed(x, y);
105 window.exciteEvent();
106 rightSoft.exciteEvent();
107 leftSoft.exciteEvent();
110 private void update() {
111 space.update();
112 Game.link.updateElements();
115 private void paint() {
116 space.paint(graphics);
117 Game.link.paintElements(graphics);
118 window.paint(graphics);
119 for (int i = 0; i < screenW; i += downPanel.getWidth()) {
120 graphics.drawImage(downPanel, i, screenH - downPanel.getHeight(), 0);
122 leftSoft.paint(graphics);
123 rightSoft.paint(graphics);
124 paintDate();
125 flushGraphics();