📄 pl.java
字号:
import javax.microedition.lcdui.Image;
public class PL extends MySprite
{
int m;
int vy;
int n;
int hp;
int [][] FS = new int[][]{
{0, 0, 0, 0, 0, 1, 1, 1}, //0原地状态
{2, 2, 3, 3, 4, 4, 5, 5}, //1跑步
{13,20,27,28}, //2攻击状态
{12}, // 3后仰状态
{14,15}, // 4击飞
{16},//5倒地
{17},//6爬起
{16,29}};//7死亡
public PL(Image _im, int[][] _pd, int[] _fs, int _x, int _y, int _z)
{
super(_im, _pd, _fs, _x, _y, _z);
n = 0;
hp = 15;
}
public void upData( boolean up,boolean down,boolean left,boolean right,MC mc)
{
this.nextFrame() ;
if (mc.ig == true)
{
if (x-mc.cx > 120)
{
mc .cx += 5;
}
}
else
{
if (x - mc.cx+20 > MC.CW )
{
x -= 5;
}
}
if (up == true)
{
z -=3;
if (z < 110)
{
z += 3;
}
}
if (down == true)
{
z +=3;
if (z > 210)
{
z -= 3;
}
}
if (right == true)
{
x += 5;
}
if (left == true)
{
x -= 5;
if (x -mc.cx < 20)
{
x += 5;
}
}
switch (m)
{
case 0:
break;
case 1: //跳跃
y += vy;
vy +=2;
if (y > 0)
{
m = 0;
y = 0;
if ( up == true || down == true || left == true || right == true) //如果落地时按了方向键则动画帧为走路
{
this.setfs( new int[]{2, 2, 3, 3, 4, 4, 5, 5});
}
else
{
this.setfs( new int[]{0, 0, 0, 0, 0, 1, 1, 1}); // 否则动画帧为站立
}
}
break;
case 2: //发拳
n--;
if (n <= 0)
{
this.setfs( new int[]{0, 0, 0, 0, 0, 1, 1, 1});
m = 1;
}
if ( n == 4)
{
for (int i = 0;i < mc.nm .npc .length ;i++)
{
if (mc.nm .npc[i] != null)
{
if (f == true)
{
if (x > mc.nm .npc[i].x - 10&& x <mc.nm .npc[i].x + 30 && Math.abs( mc.nm .npc[i].z - z ) < 10 &&mc.nm .npc[i].m < 8)
{
if(mc.zz < 0) //连续技攻击
{
mc.nm .npc[i].hp-= 3;
mc.nm .npc[i].n = 10;
mc.nm .npc[i].m = 9;
mc.nm .npc[i].vy = -10;
}
else if(mc.zz < 3)
{
mc.nm .npc[i].n = 8;
mc.nm .npc[i].setfs( mc.nm .npc[i].FS[3]);
mc.nm .npc[i].m = 8;
mc.nm .npc[i].hp--;
}
}
}
else
{
if (x > mc.nm .npc[i].x - 30 && x < mc.nm .npc[i].x + 10 &&Math.abs( mc.nm .npc[i].z - z) < 10&& mc.nm .npc[i].m < 8)
{
if(mc.zz < 0) //连续技攻击
{
mc.nm .npc[i].hp-= 3;
mc.nm .npc[i].n = 10;
mc.nm .npc[i].m = 9;
mc.nm .npc[i].vy = -10;
}
else if(mc.zz < 3)
{
mc.nm .npc[i].n = 8;
mc.nm .npc[i].setfs(mc.nm .npc[i]. FS[3]);
mc.nm .npc[i].m = 8;
mc.nm .npc[i].hp--;
}
}
}
}
}
}
break;
case 3: //发镖
if( y < 0)
{
this.setfs( new int[]{22});
}
n --;
if (n <= 0)
{
this.setfs( new int[]{0, 0, 0, 0, 0, 1, 1, 1});
m = 1;
}
break;
case 8: //后仰
n--;
if (n <= 0)
{
m = 0;
n = 5;
this.setfs( FS[0]);
}
if ( hp <= 0)
{
m = 10;
n =10;
this.setfs( FS[5]);
}
break;
case 10: //倒地
n--;
// if (hp > 0 &&n <= 0)
// {
//
// m = 11;
// n = 10;
// }
if (hp <= 0)
{
this.setfs(FS[7]);
m = 12;
n =20;
}
break;
// case 11: //爬起
// n --;
// this.setfs( FS[6]);
// if (n <= 0)
// {
// m = 0;
// n = 20;
// this.setfs( FS[0]);
// }
// break;
case 12://死亡
n --;
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -