Resource.java
上传用户:sh2222
上传日期:2009-12-31
资源大小:84k
文件大小:7k
源码类别:

J2ME

开发平台:

Java

  1. package paopao;
  2. import javax.microedition.lcdui.*;
  3. import javax.microedition.rms.*;
  4. import java.util.Hashtable;
  5. import java.util.Random;
  6. public class Resource {
  7.   static Hashtable angleValue;
  8.   private static int imageNum = 0;
  9.   private static Image img[];
  10.   static String helpStr = "";
  11.   static RecordStore rs = null;
  12.   static final byte KEY_UP = -1;
  13.   static final byte KEY_DOWN = -2;
  14.   static final byte KEY_LEFT = -3;
  15.   static final byte KEY_RIGHT = -4;
  16.   static final byte KEY_FIRE = -5;
  17.   static final byte KEY_LS = -6; //左软件
  18.   static final byte KEY_RS = -7; //右软件
  19.   //static final byte KEY_LS=    42;     //左软件
  20.   // static final byte KEY_RS=    35;      //右软件
  21.   static byte[] key = new byte[] {
  22.       KEY_LEFT, KEY_RIGHT, KEY_LS, KEY_RS, 0, 0, 1
  23.   };
  24.   static String[] keyDes = new String[] {
  25.       "向左移动:", "向右移动:", "暂停游戏:", "重新开始:"
  26.   };
  27.   static final int setupKeyNum = 4;
  28.   static boolean isSoundOn = true;
  29.   static final String DIR = "/resource/";
  30.   //images
  31.   static final int BG        = 16;
  32.   static final int BALL      = 17;
  33.   static final int BALL_BOMB = 18;
  34.   static final int POINT     = 19;
  35.   static final int AID_LINE  = 20;
  36.   static final int PROPS     = 21;
  37.   static final int BBALL     = 22;
  38.   public static Random random = new Random();
  39.   static int tempAngle;
  40.   static int tempValue;
  41.   public static void init(int m_imageNum) {
  42.     imageNum = m_imageNum;
  43.     img = new Image[imageNum];
  44.   }
  45.   //从.PNG文件生成IMAGE
  46.   //参数 int m_imageId  图片id,例如 Resource.IMG_LOGO
  47.   //参数 String m_imageName  图片资源路径名称,例如 "/logo.png"
  48.   public static void setImage(int m_imageId, String m_imageName) {
  49.     img[m_imageId] = loadImage(m_imageName);
  50.   }
  51.   //从IMAGE生成IMAGE
  52.   public static void setImage(int m_imageId, Image m_image) {
  53.     img[m_imageId] = m_image;
  54.   }
  55.   public static Image getImage(int m_imageId) {
  56.     return img[m_imageId];
  57.   }
  58.   //释放所有图片资源
  59.   public static void releasAllImage() {
  60.     for (int i = 0; i < imageNum; i++) {
  61.       img[i] = null;
  62.     }
  63.     System.gc();
  64.   }
  65.   //释放指定id的图片资源
  66.   public static void releasImage(int ImageId) {
  67.     img[ImageId] = null;
  68.     System.gc();
  69.   }
  70.   private static Image loadImage(String m_imageName) {
  71.     Image img = null;
  72.     try {
  73.       img = Image.createImage(m_imageName);
  74.       return img;
  75.     }
  76.     catch (Exception e) {
  77.       System.out.println("Error: " + e.getMessage() + " - " + m_imageName);
  78.       return null;
  79.     }
  80.   }
  81.    static void loadAngleValue()
  82.   {
  83.   angleValue = new Hashtable();
  84.   angleValue.put(String.valueOf(0),new Integer(0));
  85.   angleValue.put(String.valueOf(3),new Integer(5236));
  86.   angleValue.put(String.valueOf(6),new Integer(10453));
  87.   angleValue.put(String.valueOf(9),new Integer(15643));
  88.   angleValue.put(String.valueOf(12),new Integer(20791));
  89.   angleValue.put(String.valueOf(15),new Integer(25882));
  90.   angleValue.put(String.valueOf(18),new Integer(30902));
  91.   angleValue.put(String.valueOf(21),new Integer(35837));
  92.   angleValue.put(String.valueOf(24),new Integer(40674));
  93.   angleValue.put(String.valueOf(27),new Integer(45400));
  94.   angleValue.put(String.valueOf(30),new Integer(50000));
  95.   angleValue.put(String.valueOf(33),new Integer(54464));
  96.   angleValue.put(String.valueOf(36),new Integer(58779));
  97.   angleValue.put(String.valueOf(39),new Integer(62932));
  98.   angleValue.put(String.valueOf(42),new Integer(66913));
  99.   angleValue.put(String.valueOf(45),new Integer(70711));
  100.   angleValue.put(String.valueOf(48),new Integer(74314));
  101.   angleValue.put(String.valueOf(51),new Integer(77715));
  102.   angleValue.put(String.valueOf(54),new Integer(80902));
  103.   angleValue.put(String.valueOf(57),new Integer(83867));
  104.   angleValue.put(String.valueOf(60),new Integer(86603));
  105.   angleValue.put(String.valueOf(63),new Integer(89101));
  106.   angleValue.put(String.valueOf(66),new Integer(91355));
  107.   angleValue.put(String.valueOf(69),new Integer(93358));
  108.   angleValue.put(String.valueOf(72),new Integer(95106));
  109.   angleValue.put(String.valueOf(75),new Integer(96593));
  110.   angleValue.put(String.valueOf(78),new Integer(97815));
  111.   angleValue.put(String.valueOf(81),new Integer(98769));
  112.   angleValue.put(String.valueOf(84),new Integer(99452));
  113.   angleValue.put(String.valueOf(87),new Integer(99863));
  114.   angleValue.put(String.valueOf(90),new Integer(100000));
  115.   }
  116. static int getSinAngleValue(int angle)
  117.   {
  118. tempAngle = (angle > 90 ? (180 - angle) : angle);
  119. tempValue = ((Integer)(angleValue.get(String.valueOf(tempAngle)))).intValue();
  120. return tempValue;
  121.   }
  122. static int getCosAngleValue(int angle)
  123.   {
  124. tempAngle = (angle > 90 ? angle - 90 : 90 - angle);
  125. tempValue = ((Integer)(angleValue.get(String.valueOf(tempAngle)))).intValue();
  126. return (angle <= 90 ? tempValue : (-tempValue));
  127.   }
  128.   public static String GetUserKeyName(int keycode) {
  129.     switch (keycode) {
  130.       case '0': // '0'
  131.         return "0";
  132.       case '1': // '1'
  133.         return "1";
  134.       case '2': // '2'
  135.         return "2";
  136.       case '3': // '3'
  137.         return "3";
  138.       case '4': // '4'
  139.         return "4";
  140.       case '5': // '5'
  141.         return "5";
  142.       case '6': // '6'
  143.         return "6";
  144.       case '7': // '7'
  145.         return "7";
  146.       case '8': // '8'
  147.         return "8";
  148.       case '9': // '9'
  149.         return "9";
  150.       case '#': // '#'
  151.         return "#";
  152.       case '*': // '*'
  153.         return "*";
  154.       case KEY_UP:
  155.         return "上";
  156.       case KEY_DOWN:
  157.         return "下";
  158.       case KEY_LEFT:
  159.         return "左";
  160.       case KEY_RIGHT:
  161.         return "右";
  162.       case KEY_FIRE:
  163.         return "中";
  164.       default:
  165.         return " ";
  166.     }
  167.   }
  168.   public static void initrecord() {
  169.     boolean existingOrNot = true;
  170.     try {
  171.       rs = RecordStore.openRecordStore("option", false);
  172.     }
  173.     catch (RecordStoreNotFoundException e) {
  174.       existingOrNot = false;
  175.       e.printStackTrace();
  176.     }catch (RecordStoreException e){
  177.       existingOrNot = false;
  178.       e.printStackTrace();
  179.     }
  180.     // }
  181.     if (existingOrNot) {
  182.       try {
  183.        rs.closeRecordStore();
  184.      }
  185.      catch (Exception x) {
  186.      }
  187.       loadOption();
  188.     }
  189.     else {
  190.       try {
  191.         rs = RecordStore.openRecordStore("option", true);
  192.       }
  193.       catch (Exception e) {
  194.       }
  195.       try {
  196.         if (isSoundOn)
  197.           key[6] = 1;
  198.         else
  199.           key[6] = 0;
  200.         rs.addRecord(key, 0, key.length);
  201.       }
  202.       catch (Exception e) {
  203.       }
  204.     }
  205.     try {
  206.       rs.closeRecordStore();
  207.     }
  208.     catch (Exception x) {
  209.     }
  210.   }
  211.   public static void saveOption() {
  212.     try {
  213. //           rs.closeRecordStore();
  214.       rs.deleteRecordStore("option");
  215.       //          rs=null;
  216.       rs = RecordStore.openRecordStore("option", true);
  217.     }
  218.     catch (Exception e) {
  219.     }
  220.     try {
  221.       if (isSoundOn)
  222.         key[6] = 1;
  223.       else
  224.         key[6] = 0;
  225.       rs.addRecord(key, 0, key.length);
  226.     }
  227.     catch (Exception e) {
  228.     }
  229.     try {
  230.       rs.closeRecordStore();
  231.     }
  232.     catch (Exception x) {
  233.     }
  234.   }
  235.   public static void loadOption() {
  236.     boolean existingOrNot = true;
  237.     try {
  238.       rs = RecordStore.openRecordStore("option", false);
  239.     }
  240.     catch (Exception e) {
  241.       existingOrNot = false;
  242.     }
  243.     if (existingOrNot) {
  244.       try {
  245.         key = rs.getRecord(1);
  246.         if (key[6] == 1)
  247.           isSoundOn = true;
  248.         else
  249.           isSoundOn = false;
  250.       }
  251.       catch (Exception e) {
  252.         e.printStackTrace();
  253.       }
  254.     }
  255.     else { //not exist
  256.       System.out.println("not exist");
  257.     }
  258.     try {
  259.       rs.closeRecordStore();
  260.     }
  261.     catch (Exception x) {
  262.       x.printStackTrace();
  263.     }
  264.   }
  265. }