Facebook
From Toxic Lion, 6 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 81
  1. package lab7_snieg;
  2.  
  3. import java.util.Random;
  4. import java.util.Timer;
  5.  
  6. import java.util.TimerTask;
  7.  
  8. import javax.microedition.lcdui.Canvas;
  9. import javax.microedition.lcdui.Display;
  10.  
  11. import javax.microedition.lcdui.Graphics;
  12. import javax.microedition.midlet.*;
  13.  
  14. public class Midlet extends MIDlet {
  15.  
  16.     Display ekran;
  17.  
  18.     PadajacySnieg zamiec = new PadajacySnieg();
  19.  
  20.     Grawitacja padaSnieg = new Grawitacja();
  21.     Timer timer = new Timer();
  22.  
  23.     public Midlet() {
  24.         ekran = Display.getDisplay(this);
  25.  
  26.     }
  27.  
  28.     protected void destroyApp(boolean unconditional) {
  29.     }
  30.  
  31.     protected void startApp() {
  32.  
  33.         ekran.setCurrent(zamiec);
  34.         timer.schedule(padaSnieg, 10, 10);
  35.  
  36.     }
  37.  
  38.     protected void pauseApp() {
  39.     }
  40.  
  41.     public void exit() {
  42.         timer.cancel();
  43.  
  44.         destroyApp(true);
  45.         notifyDestroyed();
  46.  
  47.     }
  48.  
  49.     class Grawitacja extends TimerTask {
  50.  
  51.         public void run() {
  52.             zamiec.scroll();
  53.  
  54.         }
  55.  
  56.     }
  57.  
  58.     class PadajacySnieg extends Canvas {
  59.  
  60.         int height;
  61.         int width;
  62.         int[] snieg;
  63.         Random generator = new Random();
  64.         boolean painting = false;
  65.  
  66.         public PadajacySnieg() {
  67.  
  68.             height = getHeight();
  69.             width = getWidth();
  70.             snieg = new int[height];
  71.  
  72.             for (int i = 0; i < height; ++i) {
  73.                 snieg[i] = -1;
  74.             }
  75.         }
  76.  
  77.         public void scroll() {
  78.             if (painting) {
  79.                 return;
  80.             }
  81.  
  82.             for (int i = height - 1; i > 0; --i) {
  83.  
  84.                 snieg[i] = snieg[i - 1];
  85.             }
  86.  
  87.             snieg[0] = Math.abs((generator.nextInt() % (2 * width)) / 2);
  88.             repaint();
  89.  
  90.         }
  91.  
  92.         protected void paint(Graphics g) {
  93.  
  94.             painting = true;
  95.             g.setColor(128, 128, 128);
  96.  
  97.             g.fillRect(0, 0, width, height);
  98.  
  99.             g.setColor(255, 255, 255);
  100.             for (int y = 0; y < height; ++y) {
  101.  
  102.                 int x = snieg[y];
  103.  
  104.                 if (x == -1) {
  105.                     continue;
  106.                 }
  107.                 g.drawLine(x, y, x, y);
  108.  
  109.             }
  110.  
  111.             painting = false;
  112.         }
  113.  
  114.         protected void keyPressed(int keyCode) {
  115.             exit();
  116.         }
  117.  
  118.     }
  119. }
  120.