📄 human.java
字号:
g.fillRect(posX + 96, posY + 16, gauge / 3, 5);
g.drawImage(MovingObject.weaponImg, posX, posY - 384, 20);
g.setClip(posX + 3, posY + 3, 24, 24);
g.drawImage(img, posX - 189, posY - 69, 20);
if(GetNumWeapon() > 0)
DrawItem(g, weaponId, posX + 149, posY + 5);
g.setClip(posX, posY, 176, 30);
g.setColor(0xff0000);
g.drawString(String.valueOf(hp), posX + 65, posY + 10, 20);
}
public void DrawExplosion(Graphics g, int exType, int xOffset, int yOffset)
{
if(++super.stage > (exType != 40 ? 1 : 2))
{
super.stage = 0;
if(explosionStage < 2)
explosionStage++;
else
explosionStage = 0;
}
int posX = (xOffset + GetCenterLocationX()) - 12;
int posY = (yOffset + GetCenterLocationY()) - 12;
g.setClip(posX, posY, 25, 25);
g.drawImage(MovingObject.weaponImg, posX - explosionStage * 25 - 114, posY - exType * 25 - 268, 20);
}
public void Draw(Graphics g, int xOffset, int yOffset)
{
int width = actionImgWidth;
int height = super.curLoc.GetHeight();
int posX = xOffset + super.curLoc.GetX() + bodyOffsetX;
int posY = yOffset + super.curLoc.GetY();
if(invisible > 0)
{
g.setColor(damage >= 0 ? 65280 : 0xff0000);
g.setClip(0, 0, 176, 178);
g.drawString(String.valueOf(Math.abs(damage)), posX + width / 2, posY - 11, 20);
if(invisible % 2 > 0)
return;
}
switch(actionId)
{
case 0: // '\0'
default:
g.setClip(posX, posY, width, height);
if(super.direction != 3)
{
g.drawImage(img, posX, posY - super.direction * height, 20);
} else
{
DirectGraphics dg = DirectUtils.getDirectGraphics(g);
dg.drawImage(img, (posX - img.getWidth()) + width, posY - 2 * height, 20, 8192);
}
break;
case 1: // '\001'
case 2: // '\002'
case 4: // '\004'
case 6: // '\006'
g.setClip(posX, posY, width, height);
if(super.direction != 3)
{
g.drawImage(img, posX - drawImgId * width, posY - super.direction * height, 20);
} else
{
DirectGraphics dg = DirectUtils.getDirectGraphics(g);
dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - 2 * height, 20, 8192);
}
break;
case 3: // '\003'
g.setClip(posX, posY, width, height);
if(super.direction != 3)
{
g.drawImage(img, posX - drawImgId * width, posY - super.direction * height, 20);
if(GetNumWeapon() > 0 && (GetType() != 21 || GetWeaponId() != 2))
if(GetType() == 20 || GetType() == 22)
switch(drawImgId)
{
case 3: // '\003'
if(super.direction == 0)
{
posX -= 18;
posY -= 2;
} else
if(super.direction == 1)
{
posX--;
posY -= 7;
} else
{
posX -= 3;
posY -= 3;
}
g.setClip(posX, posY, 38, 38);
g.drawImage(MovingObject.weaponImg, posX, posY - super.direction * 38 - weaponId * 114, 20);
break;
case 4: // '\004'
if(super.direction == 0)
{
posX -= 4;
posY -= 20;
} else
if(super.direction == 1)
{
posX -= 8;
posY += 10;
} else
{
posX -= 16;
posY -= 13;
}
g.setClip(posX, posY, 38, 38);
g.drawImage(MovingObject.weaponImg, posX - 38, posY - super.direction * 38 - weaponId * 114, 20);
break;
case 5: // '\005'
if(super.direction == 0)
{
posX += 5;
posY += 2;
} else
if(super.direction == 1)
{
posX -= 19;
posY -= 17;
} else
{
posX += 6;
posY -= 15;
}
g.setClip(posX, posY, 38, 38);
g.drawImage(MovingObject.weaponImg, posX - 76, posY - super.direction * 38 - weaponId * 114, 20);
break;
}
else
if(GetType() == 21)
switch(drawImgId)
{
case 4: // '\004'
if(super.direction == 0)
{
posX -= 3;
posY -= 5;
} else
if(super.direction == 1)
{
posX -= 8;
posY -= 6;
} else
{
posX -= 11;
posY -= 5;
}
g.setClip(posX, posY, 38, 38);
g.drawImage(MovingObject.weaponImg, posX - 114, posY - super.direction * 38 - weaponId * 114, 20);
break;
case 5: // '\005'
if(super.direction == 0)
{
posX -= 7;
posY -= 8;
} else
if(super.direction == 1)
{
posX -= 7;
posY -= 5;
} else
{
posX -= 12;
posY -= 7;
}
g.setClip(posX, posY, 38, 38);
g.drawImage(MovingObject.weaponImg, posX - 152, posY - super.direction * 38 - weaponId * 114, 20);
break;
}
} else
{
DirectGraphics dg = DirectUtils.getDirectGraphics(g);
dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - 2 * height, 20, 8192);
if(GetNumWeapon() > 0 && (GetType() != 21 || GetWeaponId() != 2))
if(GetType() == 20 || GetType() == 22)
switch(drawImgId)
{
case 3: // '\003'
posX -= 11;
posY -= 3;
g.setClip(posX, posY, 38, 38);
dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 38, posY - 76 - weaponId * 114, 20, 8192);
break;
case 4: // '\004'
posX += 2;
posY -= 13;
g.setClip(posX, posY, 38, 38);
dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 76, posY - 76 - weaponId * 114, 20, 8192);
break;
case 5: // '\005'
posX -= 20;
posY -= 15;
g.setClip(posX, posY, 38, 38);
dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 114, posY - 76 - weaponId * 114, 20, 8192);
break;
}
else
if(GetType() == 21)
switch(drawImgId)
{
case 4: // '\004'
posX -= 3;
posY -= 5;
g.setClip(posX, posY, 38, 38);
dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 152, posY - 76 - weaponId * 114, 20, 8192);
break;
case 5: // '\005'
posX -= 2;
posY -= 7;
g.setClip(posX, posY, 38, 38);
dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 190, posY - 76 - weaponId * 114, 20, 8192);
break;
}
}
break;
case 7: // '\007'
g.setClip(posX, posY, width, height);
if(actionScript <= 0)
{
if(super.direction != 3)
{
g.drawImage(img, posX - drawImgId * width, posY - super.direction * height, 20);
} else
{
DirectGraphics dg = DirectUtils.getDirectGraphics(g);
dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - 2 * height, 20, 8192);
}
} else
if(super.direction != 3)
{
g.drawImage(img, posX - drawImgId * width, posY - height * 3, 20);
} else
{
DirectGraphics dg = DirectUtils.getDirectGraphics(g);
dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - height * 3, 20, 8192);
}
break;
case 5: // '\005'
case 8: // '\b'
case 9: // '\t'
g.setClip(posX, posY, width, height);
g.drawImage(img, posX - drawImgId * width, posY - height * 3, 20);
break;
case 10: // '\n'
g.setClip(posX, posY, width, height);
g.drawImage(img, posX - drawImgId * width, posY - height, 20);
DrawItem(g, newItem, posX + 3, posY - 13);
break;
}
if(GetType() == 22 && !IsDead() && (actionId == 6 || actionId == 7))
DrawExplosion(g, 0, xOffset, yOffset);
}
public void Run(int pLocX, int pLocY)
{
if(GetType() == 22 && GetHP() > 0)
SelectAction(pLocX, pLocY);
Run();
if(isMoving)
UpdateCanMove(super.speedX, super.moveDis);
}
public void SelectAction(int pLocX, int pLocY)
{
int distance = FindDistance(pLocX, pLocY);
int disX = GetCenterLocationX() - pLocX;
int disY = GetCenterLocationY() - pLocY;
switch(GetType())
{
default:
break;
case 22: // '\026'
if(actionId != 6)
{
if(distance < 150 && actionId != 3)
{
int newDir = FindDirectionType3(pLocX, pLocY);
SetDirection(newDir == -1 ? GameManager.Random(4) : newDir);
}
if(Math.abs(disY) < 5 && distance > 50)
{
SetDirection(disX <= 0 ? 3 : 2);
ChangeAction(3);
} else
if(Math.abs(disX) < 5 && distance > 50)
{
SetDirection(disY <= 0 ? 2 : 0);
ChangeAction(3);
} else
if(distance > 200)
ChangeAction(0);
else
if(distance < 20)
ChangeAction(3);
else
switch(GameManager.Random(5))
{
case 0: // '\0'
ChangeAction(1);
break;
case 1: // '\001'
default:
ChangeAction(2);
break;
case 2: // '\002'
ChangeAction(4);
break;
case 3: // '\003'
ChangeAction(8);
break;
}
}
break;
}
}
public int FindDirectionType3(int locX, int locY)
{
int disX = GetCenterLocationX() - locX;
int disY = GetCenterLocationY() - locY;
if(Math.abs(disX) < Math.abs(disY))
{
if(disX == 0)
{
if(disY > 0 && canMoveUp && oldDirection != 0)
{
oldDirection = 1;
return 0;
}
if(canMoveDown && oldDirection != 1)
{
oldDirection = 0;
return 1;
}
} else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -