package code.kalter.longflight.screen; import code.kalter.longflight.EventListener; import code.kalter.longflight.Loader; import code.kalter.longflight.LongFlight; import code.kalter.longflight.Sprite; import java.io.IOException; import javax.microedition.lcdui.Image; /** * Экран информации об игре * * @author Kalter */ public class About extends Screen { private final Sprite window; private final Sprite leftSoft; private final Sprite rightSoft; private final Image downPanel; public About() throws IOException { Loader loader = Loader.getInstance(); // window Image windowImage = loader.getImage("/gfx/about/window.png"); int windowX = (screenW - windowImage.getWidth()) / 2; int windowY = (screenH - windowImage.getHeight()) / 2; window = new Sprite(windowImage, windowX, windowY); window.addEvent(new EventListener() { // override public boolean is() { return window.isEntrySet(getXPressed(), getYPressed()); } // override public void event() { setScreenMenu(); } }); // left soft Image leftSoftImage = loader.getImage("/gfx/awt/left_soft.png"); int leftSoftX = 0; int leftSoftY = screenH - leftSoftImage.getHeight(); leftSoft = new Sprite(leftSoftImage, leftSoftX, leftSoftY); leftSoft.addEvent(new EventListener() { // override public boolean is() { return leftSoft.isEntrySet(getXPressed(), getYPressed()); } // override public void event() { setScreenMenu(); } }); // right soft Image rightSoftImage = loader.getImage("/gfx/awt/right_soft.png"); int rightSoftX = screenW - rightSoftImage.getWidth(); int rightSoftY = screenH - rightSoftImage.getHeight(); rightSoft = new Sprite(rightSoftImage, rightSoftX, rightSoftY); rightSoft.addEvent(new EventListener() { // override public boolean is() { return rightSoft.isEntrySet(getXPressed(), getYPressed()); } // override public void event() { setScreenMenu(); } }); // down panel downPanel = loader.getImage("/gfx/awt/down_panel.png"); } // override public void start() { setDate(39, screenH - 9); super.start(); } // override public void run() { while (getGameLoop()) { fps.process(); update(); paint(); LongFlight.link.sleep(20); fps.max(); } } // override public void keyPressed(int keyCode) { switch (getGameAction(keyCode)) { case FIRE: keyCode = RIGHT_SOFT; break; } switch (keyCode) { case RIGHT_SOFT: case LEFT_SOFT: setScreenMenu(); break; } } // override public void pointerPressed(int x, int y) { super.pointerPressed(x, y); leftSoft.exciteEvent(); rightSoft.exciteEvent(); window.exciteEvent(); } private void setScreenMenu() { LongFlight.link.setScreen(LongFlight.MENU); } private void update() { space.update(); } private void paint() { space.paint(graphics); window.paint(graphics); for (int i = 0; i < screenW; i += 128) { graphics.drawImage(downPanel, i, screenH - 18, 0); } leftSoft.paint(graphics); rightSoft.paint(graphics); paintDate(); flushGraphics(); } }