package code.kalter.longflight.screen; import code.kalter.longflight.Loader; import code.kalter.longflight.LongFlight; import code.kalter.longflight.Quote; import code.kalter.longflight.Sprite; import code.kalter.longflight.StringReader; import java.io.IOException; import java.io.InputStream; import java.util.Random; import javax.microedition.lcdui.Image; /** * Фейковая загрузка * * @author KalterFive */ public class Loading extends Screen { private static final long SLEEP = 8000; private final int COUNT; // of quots private final Quote[] quote; private final Sprite loading; private int quoteID; private long lastTime; public Loading() throws IOException { final InputStream file = getClass().getResourceAsStream("/quote.txt"); final StringReader reader = new StringReader(file); COUNT = reader.nextInt(); quote = new Quote[COUNT]; for (int i = 0; i < COUNT; i++) { String q = reader.nextString(); // quote String a = reader.nextString(); // author quote[i] = new Quote(q, a); } reader.close(); Loader loader = Loader.getInstance(); // loading Image loadingImage = loader.getImage("/gfx/loading/loading.png"); int loadingX = screenW - loadingImage.getWidth(); int loadingY = 15; loading = new Sprite(loadingImage, loadingX, loadingY); } // override public void start() { lastTime = System.currentTimeMillis(); quoteID = new Random().nextInt(COUNT); super.start(); } // override public void run() { while (getGameLoop()) { fps.process(); update(); paint(); LongFlight.link.sleep(20); fps.max(); } LongFlight.link.setScreen(LongFlight.GAME); } private void update() { if (System.currentTimeMillis() - lastTime > SLEEP) { stop(); } } private void paint() { // gfx graphics.setColor(0x002C40); graphics.fillRect(0, 0, screenW, screenH); graphics.setColor(0x004C6F); graphics.fillRect(0, 22, screenW, 2); loading.paint(graphics); // quote String quoteText = quote[quoteID].getQuote(); int quoteX = 10; int quoteY = 30; int quoteHeight = screenW - 10; font.paint(graphics, quoteText, quoteX, quoteY, quoteHeight); // author String author = quote[quoteID].getAuthor(); int authorX = 10; int authorY = 18 + quoteY + font.getHeight(quoteText, quoteHeight); int authorHeight = screenW - 10; font.paint(graphics, author, authorX, authorY, authorHeight); flushGraphics(); } }