📄 monstersprite.java
字号:
ldX = luX;
ldY = (y + 30) / 16;
rdX = ldX;
rdY = ldY;
isWaiting = false;
heroX = l;
heroY = i1;
heroHp = i2;
isAttach = flag;
heroDir = l1;
heroSprite = herosprite;
centerDis = (tempX - x) * (tempX - x) + (tempY - y) * (tempY - y);
heroDis = (l - x) * (l - x) + (i1 - y) * (i1 - y);
switch (dir + 1)
{
default:
break;
case 2: // '\002'
if (!isSmart)
{
if (centerDis < moveDis)
{
i = 0;
if (isWalkable[ldX - 1][ldY])
{
x = x - 4;
nextFrame();
} else
{
dir = 3;
setFrameSequence(right_seq);
}
break;
}
setFrameSequence(left);
i++;
if (i == stopTime)
{
tempX = x;
tempY = y;
chgDir();
}
break;
}
if (!collidesWith(herosprite, true))
{
if (isBattle)
{
isBattle = false;
setFrameSequence(left_seq);
}
if (isStop)
{
setFrameSequence(left_seq);
isStop = false;
}
if (isWalkable[ldX - 1][ldY])
{
x = x - 4;
nextFrame();
} else
{
isSmart = false;
dir = 3;
setFrameSequence(right_seq);
}
break;
}
isStop = true;
if (!isBattle)
{
isBattle = true;
setFrameSequence(leftb_seq);
nextFrame();
break;
}
if (j < stopTime - battleSpeed)
{
j++;
isStopb = true;
setFrameSequence(left);
break;
}
if (isStopb)
{
isStopb = false;
setFrameSequence(leftb_seq);
}
if (getFrame() == 2)
{
if (i2 > 0)
i2 -= heroBd;
j = 0;
}
nextFrame();
break;
case 4: // '\004'
if (!isSmart)
{
if (centerDis < moveDis)
{
i = 0;
if (isWalkable[rdX + 1][rdY])
{
x = x + 4;
nextFrame();
} else
{
dir = 1;
setFrameSequence(left_seq);
}
break;
}
setFrameSequence(right);
i++;
if (i == stopTime)
{
tempX = x;
tempY = y;
chgDir();
}
break;
}
if (!collidesWith(herosprite, true))
{
if (isBattle)
{
isBattle = false;
setFrameSequence(right_seq);
}
if (isStop)
{
setFrameSequence(right_seq);
isStop = false;
}
if (isWalkable[rdX + 1][rdY])
{
x = x + 4;
nextFrame();
} else
{
isSmart = false;
dir = 1;
setFrameSequence(left_seq);
}
break;
}
isStop = true;
if (!isBattle)
{
isBattle = true;
setFrameSequence(rightb_seq);
nextFrame();
break;
}
if (j < stopTime - battleSpeed)
{
j++;
isStopb = true;
setFrameSequence(right);
break;
}
if (isStopb)
{
isStopb = false;
setFrameSequence(rightb_seq);
}
if (getFrame() == 2)
{
if (i2 > 0)
i2 -= heroBd;
j = 0;
}
nextFrame();
break;
case 3: // '\003'
if (!isSmart)
{
if (centerDis < moveDis)
{
i = 0;
if (isWalkable[ldX][ldY - 1] && isWalkable[rdX][rdY - 1])
{
y = y - 4;
nextFrame();
} else
{
dir = 0;
setFrameSequence(down_seq);
}
break;
}
setFrameSequence(up);
i++;
if (i == stopTime)
{
tempX = x;
tempY = y;
chgDir();
}
break;
}
if (!collidesWith(herosprite, true))
{
if (isBattle)
{
isBattle = false;
setFrameSequence(up_seq);
}
if (isStop)
{
setFrameSequence(up_seq);
isStop = false;
}
if (isWalkable[ldX][ldY - 1] && isWalkable[rdX][rdY - 1])
{
y = y - 4;
nextFrame();
} else
{
isSmart = false;
dir = 0;
setFrameSequence(down_seq);
}
break;
}
isStop = true;
if (!isBattle)
{
isBattle = true;
setFrameSequence(upb_seq);
nextFrame();
break;
}
if (j < stopTime - battleSpeed)
{
j++;
isStopb = true;
setFrameSequence(up);
break;
}
if (isStopb)
{
isStopb = false;
setFrameSequence(upb_seq);
}
if (getFrame() == 2)
{
if (i2 > 0)
i2 -= heroBd;
j = 0;
}
nextFrame();
break;
case 1: // '\001'
if (!isSmart)
{
if (centerDis < moveDis)
{
i = 0;
if (isWalkable[ldX][ldY + 1] && isWalkable[rdX][rdY + 1])
{
y = y + 4;
nextFrame();
} else
{
dir = 2;
setFrameSequence(up_seq);
}
break;
}
setFrameSequence(down);
i++;
if (i == stopTime)
{
tempX = x;
tempY = y;
chgDir();
}
break;
}
if (!collidesWith(herosprite, true))
{
if (isBattle)
{
isBattle = false;
setFrameSequence(down_seq);
}
if (isStop)
{
setFrameSequence(down_seq);
isStop = false;
}
if (isWalkable[ldX][ldY + 1] && isWalkable[rdX][rdY + 1])
{
y = y + 4;
nextFrame();
} else
{
isSmart = false;
dir = 2;
setFrameSequence(up_seq);
}
break;
}
isStop = true;
if (!isBattle)
{
isBattle = true;
setFrameSequence(downb_seq);
nextFrame();
break;
}
if (j < stopTime - battleSpeed)
{
j++;
isStopb = true;
setFrameSequence(down);
break;
}
if (isStopb)
{
isStopb = false;
setFrameSequence(downb_seq);
}
if (getFrame() == 2)
{
if (i2 > 0)
i2 -= heroBd;
j = 0;
}
nextFrame();
break;
case 5: // '\005'
if (!isSmart)
{
if (centerDis < moveDis)
{
i = 0;
if (isWalkable[ldX - 1][ldY] && isWalkable[ldX][ldY - 1] && isWalkable[rdX][rdY - 1])
{
x = x - 2;
y = y - 2;
nextFrame();
} else
{
isSmart = false;
dir = 7;
setFrameSequence(rd_seq);
}
break;
}
setFrameSequence(lu);
i++;
if (i == stopTime)
{
tempX = x;
tempY = y;
chgDir();
}
break;
}
if (!collidesWith(herosprite, true))
{
if (isStop)
{
setFrameSequence(lu_seq);
isStop = false;
}
if (isBattle)
{
isBattle = false;
setFrameSequence(lu_seq);
}
if (isWalkable[ldX - 1][ldY] && isWalkable[luX][ldY - 1] && isWalkable[rdX][ruY - 1])
{
x = x - 2;
y = y - 2;
nextFrame();
} else
{
isSmart = false;
dir = 7;
setFrameSequence(rd_seq);
}
break;
}
isStop = true;
if (!isBattle)
{
isBattle = true;
setFrameSequence(lub_seq);
nextFrame();
break;
}
if (j < stopTime - battleSpeed)
{
j++;
isStopb = true;
setFrameSequence(lu);
break;
}
if (isStopb)
{
isStopb = false;
setFrameSequence(lub_seq);
}
if (getFrame() == 2)
{
if (i2 > 0)
i2 -= heroBd;
j = 0;
}
nextFrame();
break;
case 6: // '\006'
if (!isSmart)
{
if (centerDis < moveDis)
{
i = 0;
if (isWalkable[ldX][ldY - 1] && isWalkable[rdX][rdY - 1] && isWalkable[rdX + 1][rdY])
{
x = x + 2;
y = y - 2;
nextFrame();
} else
{
dir = 6;
setFrameSequence(ld_seq);
}
break;
}
setFrameSequence(ru);
i++;
if (i == stopTime)
{
tempX = x;
tempY = y;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -