Package pub.bomb.test

Source Code of pub.bomb.test.CEngine

package pub.bomb.test;

import java.io.IOException;
import java.util.Random;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.media.MediaException;
import javax.microedition.midlet.MIDlet;

import pub.bomb.constant.Constants;
import pub.bomb.input.CMotionMonitor;

public class CEngine extends Canvas implements Runnable{
   
    private CMotionMonitor sys_da_monitor;
   
    private byte sys_state = Constants.SYS_STATE_STARTUP;
   
    private byte app_state = Constants.APP_STATE_READY;
   
    private MIDlet sys_midlet;
   
    private Display sys_display;
   
    private Image arrow[], failed, success;
   
    private int exp = Constants.MATCH_EXPECT_DEFAULE , result = 0 , times = 0;
   
    private String message = "move your hand";
   
    private Graphics g;
   
    private Random seed;
   
    public CEngine(MIDlet midlet) {
      /*super(false);*/
    sys_da_monitor = new CMotionMonitor();
    sys_midlet = midlet;
    setFullScreenMode(true);
  }
   
    public void init() {
    try {
      sys_da_monitor.bind(this);
      sys_display = Display.getDisplay(sys_midlet);
      arrow = new Image[4];
      arrow[0] = Image.createImage("/up.png");
      arrow[1] = Image.createImage("/down.png");
      arrow[2] = Image.createImage("/right.png");
      arrow[3] = Image.createImage("/left.png");
      success  = Image.createImage("/success.png");
      failed= Image.createImage("/failed.png");
      seed = new Random();
      sys_display.setCurrent(this);
     
    } catch (IOException ex) {
      ex.printStackTrace();
    } catch (MediaException ex) {
      ex.printStackTrace();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
   
    protected void paint(Graphics g) {
    g.setColor(0xFFFFFF);
    g.fillRect(0, 0, Constants.SCREEN_WIDTH, Constants.SCREEN_HEIGHT);
    if(sys_da_monitor.gdib!=null){
      g.drawRGB(sys_da_monitor.gdib, 0, Constants.SW_WIDTH, 0, 0, Constants.SW_WIDTH, Constants.SW_HEIGHT, false);
    }
   
    /*switch(exp){
    case Constants.MATCH_EXPECT_UP:
      g.drawImage(arrow[0], (Constants.SCREEN_WIDTH - 50)>>1, Constants.SW_HEIGHT, Graphics.TOP|Graphics.LEFT);
      break;
    case Constants.MATCH_EXPECT_DOWN:
      g.drawImage(arrow[1], (Constants.SCREEN_WIDTH - 50)>>1, Constants.SCREEN_HEIGHT - 50, Graphics.TOP|Graphics.LEFT);
      break;
    case Constants.MATCH_EXPECT_LEFT:
      g.drawImage(arrow[3], 0, (Constants.SCREEN_HEIGHT-50)>>1, Graphics.TOP|Graphics.LEFT);
      break;
    case Constants.MATCH_EXPECT_RIGHT:
      g.drawImage(arrow[2], Constants.SCREEN_WIDTH-50, (Constants.SCREEN_HEIGHT-50)>>1, Graphics.TOP|Graphics.LEFT);
      break;
    }*/
   
    /*if(app_state == Constants.APP_STATE_MATCH_COMPLETED){
      if(result < 0){
        g.drawImage(failed, Constants.SCREEN_WIDTH>>1, Constants.SCREEN_HEIGHT>>1, Graphics.VCENTER|Graphics.HCENTER);
      }else{
        g.drawImage(success, Constants.SCREEN_WIDTH>>1, Constants.SCREEN_HEIGHT>>1, Graphics.VCENTER|Graphics.HCENTER);
      }
      exp = Math.abs(seed.nextInt())%4;
      app_state = Constants.APP_STATE_READY;
      result = 0;
    }*/
   
    g.setColor(0x000000);
    g.drawString("退出测试", 0, Constants.SCREEN_HEIGHT-15, 20);
  }

    protected void keyPressed(int key) {
      if(key == -6){
        destroy();
        sys_midlet.notifyDestroyed();
      }
  }

    protected void keyReleased(int key) {
 
    }

    protected void moved(int direct){
 
    }
   
    public void run() {
      exp = Math.abs(seed.nextInt())%4;
    app_state = Constants.APP_STATE_READY;
    while (sys_state == Constants.SYS_STATE_STARTUP) {
      /*switch(app_state){
      case Constants.APP_STATE_READY:
        app_state = Constants.APP_STATE_MATCHING;
        break;
      case Constants.APP_STATE_MATCHING:
        try {
          while(times < Constants.MATCH_TIMES){
            if (sys_da_monitor.match(exp) == Constants.MATCH_RESULT_SUCCESS) {
              result ++;
            } else {
              result --;
            }
            times++;
          }
          times=0;
         
          if (sys_da_monitor.match(exp) == Constants.MATCH_RESULT_SUCCESS) {
            result ++;
          } else {
            result --;
          }
         
        } catch (IOException ex) {
          message = ex.getMessage();
        } catch (MediaException ex) {
          message = ex.getMessage();
        } catch (Exception ex) {
          message = ex.getMessage();
        }
        app_state = Constants.APP_STATE_MATCH_COMPLETED;
        break;
      case Constants.APP_STATE_MATCH_COMPLETED:
        break;
      }*/
     
      repaint();
      serviceRepaints();
      System.gc();
      Thread.yield();
    }
  }
   
    public void destroy() {
    sys_state = Constants.SYS_STATE_SHUTDOWN;
    sys_da_monitor.close();
  }
   
}
TOP

Related Classes of pub.bomb.test.CEngine

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.