1 package code
.kalter
.longflight
.screen
;
3 import code
.kalter
.longflight
.ByteArrayInputStream
;
4 import code
.kalter
.longflight
.EventListener
;
5 import code
.kalter
.longflight
.Loader
;
6 import code
.kalter
.longflight
.LongFlight
;
7 import code
.kalter
.longflight
.Sprite
;
8 import code
.kalter
.longflight
.rms
.RMS
;
9 import code
.kalter
.longflight
.rms
.RecordNotFoundException
;
10 import java
.io
.IOException
;
11 import javax
.microedition
.lcdui
.Image
;
12 import javax
.microedition
.rms
.RecordStoreException
;
15 * Экран отображения лучших рекордов
19 public class HighScore
extends Screen
{
22 private final Sprite window
;
23 private final Sprite leftSoft
;
24 private final Sprite rightSoft
;
25 private final Image downPanel
;
27 public HighScore() throws IOException
{
28 Loader loader
= Loader
.getInstance();
31 Image windowImage
= loader
.getImage("/gfx/hscore/window.png");
32 int windowX
= (screenW
- windowImage
.getWidth()) / 2;
33 int windowY
= (screenH
- windowImage
.getHeight()) / 2;
34 window
= new Sprite(windowImage
, windowX
, windowY
);
35 window
.addEvent(new EventListener() {
38 return window
.isEntrySet(getXPressed(), getYPressed());
48 Image leftSoftImage
= loader
.getImage("/gfx/awt/left_soft.png");
50 int leftSoftY
= screenH
- leftSoftImage
.getHeight();
51 leftSoft
= new Sprite(leftSoftImage
, leftSoftX
, leftSoftY
);
52 leftSoft
.addEvent(new EventListener() {
55 return leftSoft
.isEntrySet(getXPressed(), getYPressed());
65 Image rightSoftImage
= loader
.getImage("/gfx/awt/right_soft.png");
66 int rightSoftX
= screenW
- rightSoftImage
.getWidth();
67 int rightSoftY
= screenH
- rightSoftImage
.getHeight();
68 rightSoft
= new Sprite(rightSoftImage
, rightSoftX
, rightSoftY
);
69 rightSoft
.addEvent(new EventListener() {
72 return rightSoft
.isEntrySet(getXPressed(), getYPressed());
82 downPanel
= loader
.getImage("/gfx/awt/down_panel.png");
89 RMS rms
= new RMS("longflight", true);
90 ByteArrayInputStream byteReader
= rms
.get(2);
92 for (int i
= 0; i
< 5; i
++) {
93 score
+= (i
+ 1) + ". " + byteReader
.readInteger() + "\r\n";
95 } catch (RecordNotFoundException e
) {
96 for (int i
= 0; i
< 5; i
++) {
97 score
+= (i
+ 1) + ". 0\r\n";
99 } catch (RecordStoreException e
) {
100 LongFlight
.link
.catchException(e
);
102 setDate(39, screenH
- 9);
108 while (getGameLoop()) {
112 LongFlight
.link
.sleep(20);
118 public void keyPressed(int keyCode
) {
119 switch (getGameAction(keyCode
)) {
133 public void pointerPressed(int x
, int y
) {
134 super.pointerPressed(x
, y
);
135 rightSoft
.exciteEvent();
136 leftSoft
.exciteEvent();
137 window
.exciteEvent();
140 private void setScreenMenu() {
141 LongFlight
.link
.setScreen(LongFlight
.MENU
);
144 private void update() {
148 private void paint() {
149 space
.paint(graphics
);
150 window
.paint(graphics
);
151 for (int i
= 0; i
< screenW
; i
+= 128) {
152 graphics
.drawImage(downPanel
, i
, screenH
- 18, 0);
154 leftSoft
.paint(graphics
);
155 rightSoft
.paint(graphics
);
156 font
.paint(graphics
, score
, window
.getX() + 10, window
.getY() + 37);