📄 player.java
字号:
import com.nokia.mid.ui.DirectGraphics;
import com.nokia.mid.ui.DirectUtils;
import javax.microedition.lcdui.*;
public class Player {
private GameCanvas GC = null;
//游戏角色图片
private Image playerPhoto = null;
private Image skill = null;
private byte palyer = 0;
//角色行为状态控制
private byte H;
//角色攻击状态控制
private byte t;
//选择的角色
private byte y;
private int I;
//行为控制
private byte A;
//控制角色绝技
private byte skillNum;
//取得角色图片
private int playerInt;
private int G;
//游戏角色坐标控制
private int w;
private int v;
private int f;
private int K;
private boolean P;
//游戏角色是否处于控制状态
private boolean PS;
//角色的血量
private int e;
// private int fistImage;
private int g;
//坐标定位
private int F;
//角色坐标
private int playerbyte;
private int q;
private int D;
private int b;
//判断角色发绝技状态
private boolean skillState;
//游戏中执行的时间
private int gTime;
private boolean a;
private static final byte Num[] = {
4, 4, 5, 5, 6, 6, 10, 10
};
//角色图片名
private static final String ename[] = {
"mike", "kane", "von", "dio", "fang", "crack", "yamakawa", "padof"
};
private static final int coorSet[] = {
26, 0, 15, 30, 22, 28, 12, 19
};
//角色图片定位数组
private static final int playerWidth[][][] = {
{
{
0, 19, 40, 56, 83, 107, 136, 169, 184, 201,223, 252
},
{
19, 21, 16, 27, 24, 29, 33, 15, 17, 22,29, 13
}
}, {
{
0, 19, 34, 49, 79, 101, 128, 154, 172, 188,209, 226
}, {
19, 15, 15, 30, 22, 27, 26, 18, 16, 21,17, 13
}
}, {
{
0, 19, 39, 56, 83, 106, 136, 167, 183, 199,216, 234
}, {
19, 17, 17, 27, 23, 30, 31, 16, 16, 17,18, 17
}
}, {
{
0, 28, 53, 73, 101, 128, 161, 189, 211, 228,249, 274
}, {
28, 25, 20, 28, 27, 33, 28, 22, 17, 21,25, 13
}
}, {
{
0, 18, 36, 55, 84, 107, 136, 162, 180, 194,214, 236
}, {
18, 18, 19, 29, 23, 29, 26, 18, 14, 20,22, 13
}
}, {
{
0, 24, 52, 72, 104, 137, 172, 203, 228, 247,271, 293
}, {
24, 28, 20, 32, 33, 35, 31, 25, 19, 24,22, 19
}
}, {
{
0, 25, 52, 78, 113, 146, 179, 213, 236, 257,279, 300
}, {
25, 27, 26, 35, 33, 33, 34, 23, 21, 22,21, 20
}
}, {
{
0, 27, 58, 83, 117, 149, 177, 207, 227, 246,269, 298
}, {
27, 31, 25, 34, 32, 28, 30, 20, 19, 23, 29, 20
}
}
};
//距离设定
private static final int playerD[] = {
34, 68, 34, 34, 36, 40, 16, 38
};
//血量设定
private static final int eSet[][] = {
{
8, 8, 15, 15, 8, 26, 20, 20
}, {
5, 5, 10, 10, 5, 22, 15, 15
}, {
20, 20, 17, 17, 26, 8, 10, 10
}, {
15, 15, 14, 14, 22, 5, 7, 7
}
};
//玩家角色去掉的血量
private static final int eReduce[][] = {
{
15, 15, 17, 17, 15, 25, 25, 25
}, {
10, 10, 15, 15, 10, 20, 20, 20
}, {
25, 25, 20, 20, 30, 15, 18, 18
}, {
20, 20, 16, 16, 25, 10, 13, 13
}
};
private static final byte playerS[] = {
5, 5, 4, 4, 4, 3, 3, 3
};
//角色行为状态数组
private static final byte playerCordi[][] = {
{
3, 3, 3, 3, 3, 3, 4, 4
}, {
3, 3, 3, 3, 4, 4, 4, 4
}, {
3, 3, 4, 4, 4, 4, 4, 4
}, {
4, 4, 4, 4, 4, 4, 4, 4
}, {
5, 5, 5, 5, 5, 5, 5, 5
}, {
5, 5, 6, 5, 6, 5, 5, 5
}, {
6, 6, 6, 6, 6, 6, 6, 5
}, {
6, 6, 7, 7, 7, 7, 6, 5
}, {
7, 7, 7, 7, 7, 7, 6, 6
}, {
7, 7, 8, 7, 8, 7, 6, 7
}, {
8, 8, 8, 8, 8, 8, 7, 7
}, {
8, 8, 8, 8, 8, 8, 7, 7
}, {
8, 8, 8, 8, 7, 0, 0, 0
}, {
7, 7, 8, 0, 0, 0, 0, 0
}, {
0, 0, 0, 0, 0, 0, 0, 0
}, {
0, 0, 0, 0, 0, 0, 0, 0
}
};
//坐标增量
private static final byte increCoor[] = {
5, 5, 5, 5, 4, 4, 4, 4
};
//绝技的去血量
private static final byte eSkill[] = {
25, 25, 25, 25, 20, 20, 20, 20
};
/**
* 游戏角色类构造函数
* @param d1 GameCanvas,游戏主画面类对象
* @param flag boolean,游戏角色状态标志
*/
public Player(GameCanvas d1, boolean flag)
{
GC = d1;
PS = flag;
//System.out.println("now time jugdeGameNum " + System.currentTimeMillis());
}
/**
* 清空图片
*/
public void SetNull() {
playerPhoto = null;
skill = null;
//System.gc();
}
/**
* 设定游戏角色
* @param byte0 byte,游戏角色状态
*/
public void setPlayer(byte byte0)
{
palyer = byte0;
System.gc();
try
{
playerPhoto = Image.createImage(String.valueOf(String.valueOf((new StringBuffer("/")).append(ename[byte0]).append(".png"))));
skill = Image.createImage(String.valueOf(String.valueOf((new StringBuffer("/")).append(ename[byte0]).append("_s.png"))));
} catch(Exception exception) {
// System.out.println("image error");
}
//System.gc();
resetPlayer();
}
/**
* 重新设定游戏角色1和角色2
*/
public void resetPlayer()
{
playerInt = 0;
v = 0;
f = 18;
K = 0;
H = 0;
t = 0;
y = 0;
G = 0;
e = DragonSoul.eNum[getPlayer()];
//fistImage = 0;
g = 0;
skillNum = 0;
skillState = false;
resetForceTime();
if(PS)
setPlayer1Cor();
else
setPlayer2Cor();
}
/**
* 设定电脑角色初始坐标
*/
public void setPlayer2Cor()
{
w = -50;
P = true;
G = 0;
}
/**
* 设定玩家角色初始坐标
*/
public void setPlayer1Cor()
{
w = 50;
P = false;
G = 8192;
}
/**
* 重新设定蓄力初始时间
*/
public void resetForceTime()
{
gTime = GC.getA();
}
/**
* 获得蓄力初始时间
* @return gTime int,蓄力初始时间
*/
public int getForceTime()
{
return gTime;
}
/**
* 判断蓄力时间是否大于20秒
* @return 蓄力时间判断
*/
public boolean judgeForceTime()
{
return GC.getA() - gTime > 20;
}
/**
* 获得的游戏角色
* @return player int,游戏角色
*/
public int getPlayer()
{
return palyer;
}
/**
* 设定角色的血量
* @param i1 int,角色的血量
*/
public void setE(int i1)
{
e = i1;
}
/**
* 获得角色的血量
* @return getPlayerCor int,角色的血量
*/
public int getE()
{
return e;
}
// public int showLogoCanvas()
// {
// return fistImage;
// }
/**
* 获得角色的状态
* @return k int,角色的状态值
*/
public int getState()
{
return K;
}
/**
* 控制游戏角色做相应的动作
* @param i1 int,动作类型
*/
public void playerAction(int i1)
{
if(i1 == 11)
{
K = i1;
A = 4;
return;
}
if(H > 0)
return;
if(t > 0)
return;
if(y > 0)
return;
if(A > 0)
return;
if(skillNum > 0)
return;
if(K == 3)
{
if(i1 == 3 || i1 == 4)
return;
if(i1 == 1 && I == 0)
{
i1 = 9;
y = playerS[getPlayer()];
I++;
} else
if(i1 == 2 && I == 0)
{
i1 = 10;
y = playerS[getPlayer()];
I++;
} else
if(i1 != 0)
setPlayerCor(8 * (P ? 1 : -1));
}
K = i1;
if(i1 == 5)
GC.start(0);
else
if(i1 == 6)
GC.start(1);
else
if(i1 == 7)
GC.start(2);
else
if(i1 == 8)
GC.start(3);
if(i1 == 3)
{
f = 18;
I = 0;
}
if(i1 == 11)
A = 4;
}
/**
* 通过游戏角色的坐标设定角色行为
*/
public void setAction()
{
Player b1 = GC.getPlayer1();
if(!GC.getP().getGameRank() && judgeSkill())
return;
if(Math.abs(b1.getPlayerCor() - getPlayerCor()) >= (playerPhoto.getWidth() * 2) / 12)
{
if(GC.t.nextInt() % Num[getPlayer()] == 0 && (K == 0 || K == 1 || K == 2))
{
playerAction(0);
playerAction(3);
} else
if(K == 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -