⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data.java

📁 手机ACT游戏全代码(包括代码和jar和jad)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:


import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.lcdui.game.Sprite;


public class Data {


       /**
        * 加载所有资源
        */
       public static final void loadRes(){
              loadBigImage();//加载整图资源
              if(allImage == null ) allImage = new Image[allItemData.length];

              for (int i = 0; i < allItemData.length; i++) { //将每个切片转化为独立的Image对象




                     int transform = Sprite.TRANS_NONE;//默认不翻转情况
                     if (allItemData[i].length == 6) { //需要翻转
                            switch (allItemData[i][5]) {
                                   case 1: //翻转数值对应翻转类型,270度翻转
                                          transform = Sprite.TRANS_MIRROR_ROT270;
                                          break;
                                   case 2://翻转数值对应翻转类型,180度翻转
                                          transform = Sprite.TRANS_MIRROR_ROT180;
                                          break;
                                   case 3://翻转数值对应翻转类型,90度翻转
                                          transform = Sprite.TRANS_MIRROR_ROT90;
                                          break;
                                   case 4://翻转数值对应翻转类型,水平镜像
                                          transform = Sprite.TRANS_MIRROR;
                                          break;
                                   case 5://翻转数值对应翻转类型,垂直镜像
                                          transform = Sprite.TRANS_MIRROR_ROT180;
                                          break;
                                   default:
                                          System.out.println("Transform erro!");
                                          break;

                            }
                     }
                     //根据切片信息保存每个切片的Image
                     allImage[i] = Image.createImage(drawImg[allItemData[i][0]], allItemData[i][1], allItemData[i][2],
                         allItemData[i][3], allItemData[i][4], transform);
              }
       }
       public static Image[] allImage;//所有切片的Image
       private static Image[] drawImg;//整图资源的Image

       private static void loadBigImage(){
              if(drawImg == null) drawImg = new Image[11];
              try {
                     //使用到的图片表
                     drawImg[0] = Image.createImage("/t1.png"); //被使用25次
                     drawImg[1] = Image.createImage("/p01.png"); //被使用29次
                     drawImg[2] = Image.createImage("/d01.png"); //被使用37次
                     drawImg[3] = Image.createImage("/j01.png"); //被使用8次
                     drawImg[4] = Image.createImage("/g01.png"); //被使用9次
                     drawImg[5] = Image.createImage("/sum.png"); //被使用3次
                     drawImg[6] = Image.createImage("/t2.png"); //被使用6次
                     drawImg[7] = Image.createImage("/g02.png"); //被使用7次
                     drawImg[8] = Image.createImage("/dj.png"); //被使用4次
                     drawImg[9] = Image.createImage("/g03.png"); //被使用25次
                     drawImg[10] = Image.createImage("/ui.png"); //被使用2次
              }
              catch (IOException ex) {
              }

       }






       public static short[][][] npcItemDataSize;//保存动画数据中每帧的尺寸
       /**
        *获得动画数组中每帧的宽、高及x,y的偏移
        */
       protected static final void getnpcItemDataSize()
       {
              /*定义三维数组来表示动画数组npcItemData中的每帧的宽度、高度及偏移*/
              Data.npcItemDataSize = new short[npcItemData.length][][]; //大小相同
              for (int i = 0; i < npcItemData.length; i++)
              {
                     /*分别对每个对象元素进行计算*/
                     Data.npcItemDataSize[i] = new short[npcItemData[i].length][];
                     for (int j = 0; j < npcItemData[i].length; j++)
                     {
                            /*我们保存的是对象元素的每帧的x偏移、y偏移、宽度、高度,所以应该是帧*4*/
                            Data.npcItemDataSize[i][j] = new short[npcItemData[i][j].length * 4];
                            for (int k = 0; k < npcItemData[i][j].length; k++)
                            {
                                   /*假设初始x的最小偏移为100,前提是不会超过每帧宽度、高度不超过200*/
                                   int minX = 100;
                                   /*假设初始x的最大偏移为-100*/
                                   int maxX = -100;
                                   /*假设初始右y的最小偏移为100*/
                                   int minY = 100;
                                   /*假设初始y的最小偏移为100*/
                                   int maxY = -100;
                                   /*寻找minX,maxX,minY,maxY*/
                                   for (int m = 0; m < npcItemData[i][j][k].length / 3; m++)
                                   {
                                          /*每个切片的信息,每个拼块的信息*/
                                          int ID = npcItemData[i][j][k][m * 3 + 0]; //对象元素ID
                                          int offsetX = npcItemData[i][j][k][m * 3 + 1]; //x偏移
                                          int offsetY = npcItemData[i][j][k][m * 3 + 2]; //y偏移
                                          int width = Data.allItemData[ID][3]; //切片的宽度
                                          int height = Data.allItemData[ID][4]; //高度
                                          /*翻转的情况,宽、互换*/
                                          if (Data.allItemData[ID].length == 6 && (Data.allItemData[ID][5] == 1 || Data.allItemData[ID][5] == 3))
                                          { //这里遇到翻转情况为270度与90度翻转此时的翻转需要更换长度与宽度才可计算
                                                 int temp = width;
                                                 width = height;
                                                 height = temp;
                                          }
                                          /*当此拼块的实际偏移小于预设偏移时,更换为此块的实际偏移*/
                                          if (minX > offsetX - width / 2)
                                          {
                                                 minX = offsetX - width / 2;
                                          }
                                          /*当此拼块的实际偏移大于预设最大偏移时更换为此块的实际偏移*/
                                          if (maxX < offsetX + width / 2)
                                          {
                                                 maxX = offsetX + width / 2;
                                          }
                                          /*同理y的计算*/
                                          if (minY > offsetY - height / 2)
                                          {
                                                 minY = offsetY - height / 2;
                                          }
                                          if (maxY < offsetY + height / 2)
                                          {
                                                 maxY = offsetY + height / 2;
                                          }
                                   }
                                   /*获得最小偏移*/
                                   Data.npcItemDataSize[i][j][k * 4 + 0] = (short) minX;
                                   /*获得最大偏移*/
                                   Data.npcItemDataSize[i][j][k * 4 + 1] = (short) minY;
                                   /*宽度为最大偏移与最小偏移之差*/
                                   Data.npcItemDataSize[i][j][k * 4 + 2] = (short) (maxX - minX);
                                   /*高度为y方向的最大偏移与最小偏移之差*/
                                   Data.npcItemDataSize[i][j][k * 4 + 3] = (short) (maxY - minY);
                            }
                     }
              }
       }





       //切片集合
       public static short allItemData[][]={
           {2,0,0,16,16},      //索引:[0]
           {2,16,0,16,16},     //索引:[1]
           {2,32,0,16,16,4},   //索引:[2] 水平镜象
           {2,32,0,16,16},     //索引:[3]
           {2,0,16,16,16},     //索引:[4]
           {2,16,16,16,16},    //索引:[5]
           {2,32,16,16,16,4},  //索引:[6] 水平镜象
           {2,32,16,16,16},    //索引:[7]
           {2,0,32,16,16,4},   //索引:[8] 水平镜象
           {2,0,32,16,16},     //索引:[9]
           {2,16,32,16,16,4},  //索引:[10] 水平镜象
           {2,16,32,16,16},    //索引:[11]
           {2,32,32,16,16,4},  //索引:[12] 水平镜象
           {2,32,32,16,16},    //索引:[13]
           {2,0,48,16,16,4},   //索引:[14] 水平镜象
           {2,0,48,16,16},     //索引:[15]
           {2,16,48,16,16},    //索引:[16]
           {2,32,48,16,16,4},  //索引:[17] 水平镜象
           {2,32,48,16,16},    //索引:[18]
           {2,32,64,16,16},    //索引:[19]
           {2,0,64,16,16},     //索引:[20]
           {2,16,64,16,16},    //索引:[21]
           {2,64,0,16,16},     //索引:[22]
           {2,32,80,16,16},    //索引:[23]
           {2,48,0,16,16},     //索引:[24]
           {2,48,0,16,16,4},   //索引:[25] 水平镜象
           {2,48,16,16,16},    //索引:[26]
           {2,64,16,16,16},    //索引:[27]
           {3,0,0,61,41},      //索引:[28]
           {3,0,41,44,37},     //索引:[29]
           {3,47,41,14,10},    //索引:[30]
           {3,61,0,54,37},     //索引:[31]
           {1,21,56,17,11},    //索引:[32]
           {1,26,38,18,18},    //索引:[33]
           {1,0,65,15,20},     //索引:[34]
           {1,0,46,19,19},     //索引:[35]
           {1,38,57,19,10},    //索引:[36]
           {0,56,0,7,6,4},     //索引:[37] 水平镜象
           {0,63,0,6,8,4},     //索引:[38] 水平镜象
           {1,28,0,26,18},     //索引:[39]
           {1,27,18,25,14},    //索引:[40]
           {1,0,14,27,32},     //索引:[41]
           {1,0,0,25,14},      //索引:[42]
           {0,0,0,56,8},       //索引:[43]
           {0,0,8,66,7},       //索引:[44]
           {1,81,0,34,39},     //索引:[45]
           {0,74,16,11,6},     //索引:[46]
           {0,66,16,8,16},     //索引:[47]
           {0,66,16,8,16,4},   //索引:[48] 水平镜象
           {1,84,39,35,36},    //索引:[49]
           {1,115,0,31,41},    //索引:[50]
           {1,120,41,25,29},   //索引:[51]
           {0,69,0,16,16},     //索引:[52]
           {0,69,0,16,16,4},   //索引:[53] 水平镜象
           {0,85,0,16,21},     //索引:[54]
           {0,85,0,16,21,4},   //索引:[55] 水平镜象
           {0,101,0,20,21},    //索引:[56]
           {0,101,0,20,21,4},  //索引:[57] 水平镜象
           {0,74,22,18,10},    //索引:[58]
           {0,74,22,18,10,4},  //索引:[59] 水平镜象
           {1,27,32,21,5},     //索引:[60]
           {1,0,85,24,33},     //索引:[61]
           {1,27,0,27,32},     //索引:[62]
           {1,43,67,12,10},    //索引:[63]
           {0,92,21,30,6},     //索引:[64]
           {1,56,0,25,43},     //索引:[65]
           {1,44,46,7,7},      //索引:[66]
           {0,0,15,34,36},     //索引:[67]
           {1,57,61,26,15},    //索引:[68]
           {1,15,67,28,18},    //索引:[69]
           {0,34,15,32,35},    //索引:[70]
           {1,57,43,27,33},    //索引:[71]
           {0,0,51,63,9},      //索引:[72]
           {0,66,32,62,15},    //索引:[73]
           {0,51,60,18,19},    //索引:[74]
           {1,0,85,26,33},     //索引:[75]
           {0,69,48,39,19},    //索引:[76]
           {0,1,60,50,18,1},   //索引:[77] R90度
           {1,123,70,23,54},   //索引:[78]
           {0,99,67,29,45,4},  //索引:[79] 水平镜象
           {0,70,67,28,51,4},  //索引:[80] 水平镜象
           {1,24,85,37,30},    //索引:[81]
           {6,0,36,15,16},     //索引:[82]
           {6,0,0,24,24},      //索引:[83]
           {1,61,76,29,36},    //索引:[84]
           {6,0,25,19,11},     //索引:[85]
           {6,0,25,19,11,2},   //索引:[86] R180度
           {6,24,0,25,30},     //索引:[87]
           {1,91,75,29,37},    //索引:[88]
           {6,20,30,27,34},    //索引:[89]
           {1,0,118,41,20},    //索引:[90]
           {1,41,115,41,20},   //索引:[91]
           {4,0,0,28,22},      //索引:[92]
           {4,87,0,15,20},     //索引:[93]
           {4,31,22,18,19},    //索引:[94]
           {4,28,0,29,21},     //索引:[95]
           {4,57,0,30,21},     //索引:[96]
           {4,0,22,31,33},     //索引:[97]
           {4,49,21,42,33},    //索引:[98]
           {4,0,55,45,34},     //索引:[99]
           {4,46,54,49,43},    //索引:[100]
           {5,0,0,7,9},        //索引:[101]
           {5,15,0,8,9},       //索引:[102]
           {5,7,0,8,9},        //索引:[103]
           {9,0,0,28,28},      //索引:[104]
           {9,28,0,28,28},     //索引:[105]
           {9,56,0,29,27},     //索引:[106]
           {9,62,27,28,28},    //索引:[107]
           {9,27,55,9,9},      //索引:[108]
           {9,49,55,16,15},    //索引:[109]
           {9,27,67,10,10},    //索引:[110]
           {9,38,67,10,10},    //索引:[111]
           {9,65,55,13,16},    //索引:[112]
           {9,77,55,13,16},    //索引:[113]
           {9,0,28,31,29},     //索引:[114]
           {9,49,71,34,1},     //索引:[115]
           {9,31,28,31,27},    //索引:[116]
           {9,28,78,60,1},     //索引:[117]
           {9,49,74,25,1},     //索引:[118]
           {9,0,57,27,27},     //索引:[119]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -