DEADSOFTWARE

License project under GNU GPL 3.
[LongFlight.git] / src / code / kalter / longflight / screen / EnableSound.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 KalterFive
14 */
15 public class EnableSound extends Screen {
17 private static final int COUNT = 2; // of choise
19 private static final int YES = 0;
20 private static final int NO = 1;
22 private int position;
23 private final Sprite window;
24 private final Sprite leftSoft;
25 private final Sprite[] choise;
26 private final Sprite[] selectChoise;
27 private final Image downPanel;
29 public EnableSound() throws IOException {
30 position = 0;
31 Loader loader = Loader.getInstance();
33 // window
34 Image windowImage = loader.getImage("/gfx/enable_sound/window.png");
35 int windowX = (screenW - windowImage.getWidth()) / 2;
36 int windowY = (screenH - windowImage.getHeight()) / 2;
37 window = new Sprite(windowImage, windowX, windowY);
39 // left panel
40 Image leftSoftImage = loader.getImage("/gfx/awt/left_soft.png");
41 int leftSoftX = 0;
42 int leftSoftY = screenH - leftSoftImage.getHeight();
43 leftSoft = new Sprite(leftSoftImage, leftSoftX, leftSoftY);
44 leftSoft.addEvent(new EventListener() {
45 // override
46 public boolean is() {
47 return leftSoft.isEntrySet(getXPressed(), getYPressed());
48 }
50 // override
51 public void event() {
52 leftSoftPressed();
53 }
54 });
56 // choises
57 Image choiseCrop = loader.getImage("/gfx/enable_sound/choise.png");
58 choise = new Sprite[COUNT];
59 selectChoise = new Sprite[COUNT];
60 for (int i = 0; i < COUNT; i++) {
61 // choise
62 Image c = Image.createImage(choiseCrop, 0, i * 22, 102, 22, 0);
63 int choiseX = (screenW - 102) / 2;
64 int choiseY = window.getY() + 51 + i * 24;
65 choise[i] = new Sprite(c, choiseX, choiseY);
67 // selectchoise
68 Image sc = Image.createImage(choiseCrop, 102, i * 22, 102, 22, 0);
69 int selectChoiseX = choise[i].getX();
70 int selectChoiseY = choise[i].getY();
71 selectChoise[i] = new Sprite(sc, selectChoiseX, selectChoiseY);
72 }
74 // down panel
75 downPanel = loader.getImage("/gfx/awt/down_panel.png");
77 // adding event listener for choise about of "yes"
78 choise[YES].addEvent(new EventListener() {
79 // override
80 public boolean is() {
81 return choise[YES].isEntrySet(getXPressed(), getYPressed());
82 }
84 // override
85 public void event() {
86 yes();
87 }
88 });
89 selectChoise[YES].addEvent(choise[YES].getEvent(0));
91 // adding event listener for choise about of "no"
92 choise[NO].addEvent(new EventListener() {
93 // override
94 public boolean is() {
95 return choise[NO].isEntrySet(getXPressed(), getYPressed());
96 }
98 // override
99 public void event() {
100 no();
102 });
103 selectChoise[NO].addEvent(choise[NO].getEvent(0));
106 // override
107 public void start() {
108 setDate(39, screenH - 9);
109 super.start();
112 // override
113 public void pointerPressed(int x, int y) {
114 super.pointerPressed(x, y);
115 leftSoft.exciteEvent();
116 choise[YES].exciteEvent();
117 choise[NO].exciteEvent();
120 // override
121 public void keyPressed(int keyCode) {
122 switch (getGameAction(keyCode)) {
123 case UP:
124 upPressed();
125 break;
127 case DOWN:
128 downPressed();
129 break;
131 case FIRE:
132 firePressed();
133 break;
135 switch (keyCode) {
136 case LEFT_SOFT:
137 leftSoftPressed();
138 break;
142 // override
143 public void run() {
144 while (getGameLoop()) {
145 fps.process();
146 update();
147 paint();
148 LongFlight.link.sleep(20);
149 fps.max();
151 LongFlight.link.setScreen(LongFlight.SPLASH);
154 private void paint() {
155 space.paint(graphics);
156 for (int i = 0; i < screenW; i += 128) {
157 graphics.drawImage(downPanel, i, screenH - 18, 0);
159 paintDate();
160 leftSoft.paint(graphics);
161 window.paint(graphics);
162 for (int i = 0; i < COUNT; i++) {
163 if (position == i) {
164 selectChoise[i].paint(graphics);
165 } else {
166 choise[i].paint(graphics);
169 flushGraphics();
172 private void update() {
173 space.update();
176 private void leftSoftPressed() {
177 firePressed();
180 private void upPressed() {
181 if (--position < 0) {
182 position = 0;
186 private void downPressed() {
187 if (++position >= COUNT) {
188 position = COUNT - 1;
192 private void firePressed() {
193 switch (position) {
194 case YES:
195 yes();
196 break;
198 case NO:
199 no();
200 break;
204 private void yes() {
205 choise[YES].removeEvent(0);
206 LongFlight.link.playMusic();
207 stop();
210 private void no() {
211 stop();