Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package lab77;
- import java.util.Random;
- import java.util.Timer;
- import java.util.TimerTask;
- import javax.microedition.lcdui.Canvas;
- import javax.microedition.lcdui.Display;
- import javax.microedition.lcdui.Form;
- import javax.microedition.lcdui.Graphics;
- import javax.microedition.midlet.*;
- /**
- * @author admin
- */
- public class Midlet extends MIDlet {
- Display ekran;
- PadajacySnieg zamiec = new PadajacySnieg();
- Grawitacja padaSnieg = new Grawitacja();
- Timer timer = new Timer();
- public Midlet() {
- ekran = Display.getDisplay(this);
- }
- public void startApp() {
- ekran.setCurrent(zamiec);
- timer.schedule(padaSnieg, 10, 10);
- }
- public void pauseApp() {
- }
- protected void exit() {
- timer.cancel();
- destroyApp(true);
- notifyDestroyed();
- }
- public void destroyApp(boolean unconditional) {
- }
- class Grawitacja extends TimerTask {
- public void run() {
- zamiec.scroll();
- }
- }
- class PadajacySnieg extends Canvas {
- int height;
- int width;
- int i = 1;
- int size;
- int[] snieg;
- int[] tab_y;
- Random generator = new Random();
- boolean painting = false;
- public PadajacySnieg() {
- height = getHeight();
- width = getWidth();
- snieg = new int[height];
- tab_y = new int[height];
- for (int i = 0; i < height; i++) {
- snieg[i] = -1;
- }
- }
- public void scroll() {
- if (painting) {
- return;
- }
- if (snieg[height - 1] > 0) {
- tab_y[snieg[height - 1]] += 1;
- }
- for (int i = height - 1; i > 0; --i) {
- snieg[i] = snieg[i - 1];
- }
- snieg[0] = Math.abs((generator.nextInt() % (2 * width)) / 2);
- repaint();
- }
- protected void paint(Graphics g) {
- painting = true;
- g.setColor(128, 128, 128);
- g.fillRect(0, 0, width, height);
- g.setColor(255, 255, 255);
- int y = 0, x = 0;
- for (y = 0; y < height; ++y) {
- x = snieg[y];
- if (x == -1) {
- continue;
- }
- g.drawLine(x, y, x, y);
- }
- for (int i = 0; i < tab_y.length; i++) {
- if (i < tab_y.length - 1) {
- if (tab_y[i + 1] > tab_y[i] + 2) {
- g.drawLine(i, height, i, height - tab_y[i] + 1);
- } else {
- g.drawLine(i, height, i, height - tab_y[i]);
- }
- }
- }
- painting = false;
- }
- }
- protected void keyPressed(int keyCode) {
- exit();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement