📄 gamedatasimple.java
字号:
* array[3]=共有多少祯
* array[4]=第一个NPC向右攻击的起始祯数
* array[5]=共有多少祯
* array[6]=第一个NPC向右挨打的起始祯数
* array[7]=共有多少祯
* @return
*/
public short[] getNpcFrame(){
// short array[] = {
// 0,1,2,3,//走0
// 4,5,4,5,4,//攻击4
// 6,6,6,//被攻击9
// 7,7,8,8//死亡12
//
// };
return arrayNpcFrameSequence;
}
/**
* 云层的基础信息//0不动 1左右动 2上下动 3呼唤出来的左 4呼唤出来的右
* array[n][0]=云层的图片号
* array[n][1]=云层图片单元格的宽度
* array[n][2]=云层图片单元格的高度
* array[0][3]=云层移动的速度
* @return
*/
public short[][] getCloundKind(){
// switch(WestGameCanvas.gameLevel){
// case 1:
// case 4:
// short[][] array = {
// {1,96,32,0},//不动的
// {1,96,32,3},//左右动的
// {1,96,32,3},//上下动的
// {2,64,25,0},//左边的
// {2,64,25,0}//左边的
// };
// return array;
// case 2:
// short[][] array1 = {
// {1,128,32,0},//不动的
// {1,128,32,3},//左右动的
// {1,128,32,3},//上下动的
// {2,50,25,0},//左边的
// {2,50,25,0}//左边的
// };
// return array1;
// case 3:
// short[][] array2 = {
// {1,128,40,0},//不动的
// {1,128,40,3},//左右动的
// {1,128,40,3},//上下动的
// {2,50,30,0},//左边的
// {2,50,30,0}//左边的
// };
// return array2;
// }
return arrayCloudKind;
}
public short[][] NpcFrame(int id){
// switch(id){
// case 0:
// case 3:
// short array[][] = {
// {13,1,21,41,23},
// {12,2,19,40,21},
// {14,1,18,41,23},
// {12,2,20,40,22},
// {15,3,18,39,24},
// {14,1,18,41,23},
// {6,10,27,32,19},
// {17,2,25,40,29},
// {7,1,33,31,23},
// {4,22,41,20,24},
// {12,1,19,41,21},
// {13,2,21,40,23},
// {11,1,20,41,21},
// {13,2,19,40,22},
// {12,3,10,39,17},
// {12,1,17,41,20},
// {6,10,35,32,23},
// {0,2,35,40,17},
// {1,1,37,31,19},
// {1,22,38,20,20}
// };
// return array;
// case 1:
// short array1[][] ={
// {10,10,30,39,20},
// {9,8,31,41,20},
// {0,10,31,39,15},
// {18,9,29,40,23},
// {8,13,35,36,21},
// {19,16,31,33,25},
// {22,1,25,48,23},
// {25,0,35,49,30},
// {23,26,22,23,22},
// {5,10,40,39,22},
// {16,8,30,41,23},
// {18,10,12,39,20},
// {26,9,28,40,27},
// {19,13,32,36,25},
// {16,16,30,33,23},
// {16,1,27,48,21},
// {20,0,37,49,28},
// {20,26,44,23,32}
// };
// return array1;
// case 2:
// short array2[][] ={
// {4,2,42,50,25},
// {10,0,41,52,30},
// {6,2,46,50,29},
// {12,0,40,52,32},
// {28,5,33,47,44},
// {0,5,64,47,32},
// {17,5,49,47,41},
// {4,5,57,47,32},
// {7,28,71,24,42},
// {28,2,42,50,49},
// {23,0,41,52,43},
// {22,2,46,50,45},
// {22,0,40,52,42},
// {13,5,33,47,29},
// {18,5,64,47,50},
// {9,5,49,47,33},
// {13,5,57,47,41},
// {0,28,71,24,35}
// };
// return array2;
// }
return arrayNpcFrame;
}
public short[][] BossFrame(int id){
// switch(id){
// case 0:
// case 3:
// short array[][]={
// {35,15,61,70,62},
// {39,13,52,72,62},
// {38,19,55,66,62},
// {39,13,51,72,62},
// {40, 0,74,84,62},//打
// { 0,23,90,84,62},//打
// {40,15,54,70,62},
// {35,21,72,64,62},
// {27,49,77,36,62},
//
// {26,15,61,70,62},
// {34,13,52,72,62},
// {31,19,55,66,62},
// {35,13,51,72,62},
// {10, 0,74,84,62},
// {34,23,90,84,62},
// {30,15,54,70,62},
// {18,21,72,64,62},
// {22,49,77,36,62}
// };
// return array;
// case 1:
// short array1[][] = {
// {29,9,46,56,52},
// {22,11,51,54,47},
// {28,9,46,56,51},
// {20,11,51,54,45},
// {43,4,46,61,66},
// {9,16,83,49,50},
// {41,9,51,56,66},
// {38,0,71,65,73},
// {41,23,74,42,78},
// {3,9,46,56,26},
// {9,11,51,54,34},
// {12,9,46,56,35},
// {18,11,51,54,33},
// {5,4,46,61,28},
// {5,16,83,49,46},
// {10,9,51,56,35},
// {10,0,71,65,45},
// {17,23,74,42,54}
// };
// return array1;
// case 2:
// short array2[][] = {
// {31,21,37,73,49},
// {21,25,43,69,42},
// {30,22,38,72,49},
// {19,25,37,69,37},
// {28,17,26,77,41},
// {4,39,90,55,49},
// {16,25,46,69,39},
// {21,37,69,57,55},
// {18,62,69,32,52},
// {23,21,35,73,40},
// {23,25,44,69,45},
// {16,22,40,72,36},
// {27,25,41,69,47},
// {33,17,32,77,49},
// {3,39,86,55,46},
// {25,25,43,69,46},
// {3,37,65,57,35},
// {1,62,69,32,35}
// };
// return array2;
//// case 3:
//// //---------------------------------------------------------临时
//// short array3[][] = {
//// {31,21,37,73,49},
//// {21,25,43,69,42},
//// {30,22,38,72,49},
//// {19,25,37,69,37},
//// {28,17,26,77,41},
//// {4,39,90,55,49},
//// {16,25,46,69,39},
//// {21,37,69,57,55},
//// {18,62,69,32,52},
//// {23,21,35,73,40},
//// {23,25,44,69,45},
//// {16,22,40,72,36},
//// {27,25,41,69,47},
//// {33,17,32,77,49},
//// {3,39,86,55,46},
//// {25,25,43,69,46},
//// {3,37,65,57,35},
//// {1,62,69,32,35}
//// };
//// return array3;
// };
return arrayBossFrame;
}
/**
* 打开数据流
*
* @param name
* String 路径+数据名
* @return DataInputStream 返回数据流
*/
private DataInputStream dataOpen(String name)
{
return new DataInputStream(getClass().getResourceAsStream(name));
}
/**
* @param dis
* DataInputStream 数据流
* @return short 2维数组
*/
private short[][] dataStreamRead2(DataInputStream dis)
{
//最后一个用来存最后一维有多少个
short data[] = dataStreamRead1(dis);
int len = data.length - 1;
short useCol = data[len];
short row = 0;
short col = 0;
short array2D[][] = new short[len / useCol][useCol];
for (int i = 0; i < len;)
{
if (col == useCol)
{
row++;
col &= 0;
}
//System.out.println(i + ": row=" + row + ", col=" + col);
array2D[row][col++] = data[i++];
}
//test start将数组在控制台打出------------>>
//System.out.println("read2 size: " + array2D.length + " X " + useCol);
//for (int i = 0; i < array2D.length; i++)
//{
// System.out.print("{ ");
// for (int j = 0; j < array2D[0].length; j++)
// {
// System.out.print(array2D[i][j]);
// if (j == array2D[0].length - 1)
// {
// if (i == array2D.length - 1)
// System.out.println("} ");
// else
// System.out.println("}, ");
// }
// else
// System.out.print(", ");
// }
//}
//end -----------------------------------<<
//this.loadCounts++;
return array2D;
}
/**
* 从数据流读取byte型数组
*
* @param dis
* DataInputStream数据流
* @return short 1维数组
*/
private short[] dataStreamRead1(DataInputStream dis)
{
try
{
int part1 = this.dataReadTowBytes(dis);
int part2 = this.dataReadTowBytes(dis);
int data = (part1 << 16) | (part2 & 0xffff);
//读取第一维数 2 byte
int row = data >>> 22;
//读取第二维数 2 byte
int col = (data & 0x3fffff) >>> 12;
//数组元素个数
int num = row * col;
//test------------------------------------start>>
//Tools.txtOut("size: " + row + " X " + col + ", binLen=" + (part2 & 0xfff));
//test------------------------------------end<<
//如果是二维数组,在数据数组后面增加一位,记录第二维长度
short[] array1D = new short[num + 1];
array1D[num] = (short) col;
//临时变量
byte flag;
short type, n;
int count;
for (int idx = 0, j; idx < num;)
{
//取得一位数据
flag = dis.readByte();
//不是标志位
if (flag != (byte) 0x80)
array1D[idx++] = flag;
//是标志位
else
{
//取得压缩信息
data = this.dataReadTowBytes(dis);
//取得压缩类型
type = (short) (data >> 12);
//取得压缩数据个数
count = data & 0xfff;
//Tools.txtOut("type=" + type + ", count=" + count);
//判断压缩类型
switch (type)
{
case 1://大数据 2 bits
//循环读取 count 个大数
for (j = 0; j++ < count;)
array1D[idx++] = (short) this
.dataReadTowBytes(dis);
break;
default:
if (2 == type)//相同的小数据 1 bit
n = dis.readByte();
else
// if(3==type)//相同的大数据 2 bits
n = (short) this.dataReadTowBytes(dis);
//循环赋值 count 次
for (j = 0; j++ < count;)
array1D[idx++] = n;
break;
}
}//else end
}//for end
return array1D;
}
catch (EOFException e)
{
}
catch (IOException e)
{
}
return null;
}
/**
*
* @param dis
* @return
* @throws IOException
*/
private int dataReadTowBytes(DataInputStream dis) throws IOException
{
byte back = dis.readByte();
return (dis.readByte() << 8) | (back & 0xff);
}
/**
* @param dis
* DataInputStream数据流
* @param index
* int 跳过几个数据
*/
private void dataStreamJump(DataInputStream dis, int index)
{
try
{
for (int i = 0, skip; i++ < index;)
{
dis.skipBytes(2);
skip = this.dataReadTowBytes(dis) & 0xfff;
dis.skipBytes(skip);
}
}
catch (IOException e)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -