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 Crash extends Screen { private final Sprite window; private final Sprite leftSoft; private final Sprite rightSoft; private final Image downPanel; public Crash() throws IOException { Loader loader = Loader.getInstance(); // window Image windowImage = loader.getImage("/gfx/crash/window.png"); int windowX = (screenW - windowImage.getWidth()) / 2; int windowY = (screenH - windowImage.getHeight()) / 2; window = new Sprite(windowImage, windowX, windowY); // здесь для окошка не обрабатываются события // 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() { keyPressed(LEFT_SOFT); } }); //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() { keyPressed(LEFT_SOFT); } }); // 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 = LEFT_SOFT; break; } switch (keyCode) { case LEFT_SOFT: case RIGHT_SOFT: LongFlight.link.setScreen(LongFlight.MENU); break; } } // override public void pointerPressed(int x, int y) { super.pointerPressed(x, y); window.exciteEvent(); rightSoft.exciteEvent(); leftSoft.exciteEvent(); } private void update() { space.update(); Game.link.updateElements(); } private void paint() { space.paint(graphics); Game.link.paintElements(graphics); window.paint(graphics); for (int i = 0; i < screenW; i += downPanel.getWidth()) { graphics.drawImage(downPanel, i, screenH - downPanel.getHeight(), 0); } leftSoft.paint(graphics); rightSoft.paint(graphics); paintDate(); flushGraphics(); } }