Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.87 KB | None | 0 0
  1. import javax.microedition.lcdui.*;
  2. import java.util.*;
  3. import javax.microedition.lcdui.game.*;
  4. import javax.microedition.lcdui.Image;
  5.  
  6. class GameMain extends GameCanvas {
  7.    
  8.     private int gameState;
  9.     private Timer mainTimer;
  10.     private Pixel pixel;
  11.     private Vector platforms = new Vector();
  12.  
  13.     public GameMain(MainMIDlet midlet) {
  14.         super(true);
  15.         gameState = 0;
  16.        
  17.         initNewGame();
  18.     }
  19.  
  20.     public void paint() {
  21.         Graphics g = getGraphics();
  22.         //clear everything
  23.         g.setColor(255, 255, 255);
  24.         g.fillRect(0, 0, getWidth(), getHeight());
  25.         g.setColor(0, 0, 0);
  26.  
  27.         switch (gameState) {
  28.         case 0:
  29.             g.drawString("press start!", getWidth() / 2, getHeight() / 2,
  30.                     Graphics.BASELINE | Graphics.HCENTER);
  31.             break;
  32.         case 1:
  33.            
  34.             for (int i = 0; i < platforms.size(); i++) {
  35.                 Platform p = (Platform) platforms.elementAt(i);
  36.                 //breakable == blau
  37.                 if( p.type == 1)
  38.                     g.setColor(0, 0, 255);
  39.                 //fake == rot
  40.                 if(p.type == 2)
  41.                     g.setColor(255, 0, 0);
  42.                
  43.                 g.fillRect((int)p.posX, (int)p.posY, p.size, 3);
  44.                 g.setColor(0, 0, 0);
  45.                 pixel.paint(g);
  46.             }
  47.             g.fillRect((int)pixel.posX, (int)pixel.posY, 2, 2);
  48.            
  49.             break;
  50.         case 3:
  51.             g.drawString("game over", getWidth() / 2, getHeight() / 2,
  52.                     Graphics.BASELINE | Graphics.HCENTER);
  53.             break;
  54.         }
  55.         Debug.print(g);
  56.         flushGraphics();
  57.     }
  58.  
  59.    
  60.  
  61.     public void doGamePlay(int ms) {
  62.         int keycode = getKeyStates();
  63.         int leftright = 0;
  64.         if ((keycode & LEFT_PRESSED) != 0)
  65.             leftright = -1;
  66.         if ((keycode & RIGHT_PRESSED) != 0)
  67.             leftright = 1;
  68.        
  69.         pixel.accelerate(leftright);
  70.         pixel.move(getWidth(), getHeight(), platforms, ms);
  71.        
  72.        
  73.         if(pixel.posY > getHeight())
  74.             gameState = 3;
  75.        
  76.         //Abstand des Pixels zu Bildschirmmitte.
  77.         double dist = getHeight() / 2 - pixel.posY;
  78.         //Wenn der Pixel ueber der Mitte ist, bewege alle Plattformen und den Pixel entsprchend.
  79.         if (dist > 0) {
  80.             for (int i = 0; i < platforms.size(); i++) {
  81.                 Platform p = (Platform) platforms.elementAt(i);
  82.                 p.posY += dist;
  83.             }
  84.             pixel.posY += dist;
  85.         }
  86.         deletePlatforms();
  87.         //createNewPlatforms();
  88.        
  89.     }
  90.    
  91.     /**
  92.      * Loescht alle Plattformen, die sich unter dem Bildschirm befinden.
  93.      */
  94.     private void deletePlatforms() {
  95.         for (int i = 0; i < platforms.size(); i++) {
  96.             Platform p = (Platform) platforms.elementAt(i);
  97.             if (p.posY > getHeight())
  98.                 platforms.removeElementAt(i);
  99.         }
  100.     }
  101.    
  102.     public void startTimer() {
  103.         final int ms = 40;
  104.         stopTimer();
  105.         mainTimer = new Timer();
  106.         TimerTask pt = new TimerTask() {
  107.             public final void run() {
  108.                 doGamePlay(ms);
  109.                 paint();
  110.             }
  111.         };
  112.         mainTimer.schedule(pt, 0, ms);
  113.     }
  114.    
  115.     public void stopTimer() {
  116.         if (mainTimer != null)
  117.             mainTimer.cancel();
  118.         mainTimer = null;
  119.     }
  120.  
  121.     public void initNewGame() {
  122.        
  123.        
  124.         Image img = null;
  125.         try{
  126.             img = Image.createImage("/pixelman.png");
  127.             pixel = new Pixel(img, 16, 16);
  128.             pixel.setRefPixelPosition(getWidth() / 2, getHeight() / 2);
  129.         }catch(Exception e){}
  130.        
  131.        
  132.        
  133.        
  134.  
  135.        
  136.         platforms.removeAllElements();
  137.         //mittige Plattform, sodass man nicht gleich zu Beginn runterfaellt
  138.         platforms.addElement(new Platform(getWidth() / 2 - 15, getHeight() - 30, 30, 1));
  139.         Random r = new Random();
  140.         for (int i = 0; i < 100; i++) {
  141.             platforms.addElement(new Platform(r.nextInt(getWidth() - 30), r.nextInt(getHeight()+1000)-1000, 30, r.nextInt(3)));
  142.         }
  143.        
  144.         gameState = 1;
  145.     }
  146.  
  147.     private void stopGame() {
  148.         stopTimer();
  149.         gameState = 0;
  150.         repaint();
  151.     }
  152.  
  153.     /*protected void keyPressed(int keyCode) {
  154.         switch (keyCode) {
  155.         case KEY_NUM4:
  156.             pixel.speedX = -3;
  157.             break;
  158.         case KEY_NUM6:
  159.             pixel.speedX = 3;
  160.             break;
  161.         }
  162.     }*/
  163.  
  164.     /*protected void keyReleased(int keyCode) {
  165.  
  166.         switch (keyCode) {
  167.         case KEY_NUM4:
  168.             pixel.speedX = 0;
  169.             break;
  170.         case KEY_NUM6:
  171.             pixel.speedX = 0;
  172.             break;
  173.         }
  174.     }*/
  175.  
  176.    
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement