📄 human.java
字号:
{
rightRoomData = Room.GetObjectId(rightPosX1, posY);
rightDisX = (objPosX += 30) + Room.GetObstructionDistance(rightRoomData, direct);
if(rightRoomData != -1 && rightDisX >= maxX)
{
int objPosY;
int upDisY;
int downDisY;
if(rightDisX <= moveTo)
{
if(!Room.IsCornerWallId(rightRoomData))
{
objPosY = posY * 30;
int objDis = Room.GetObstructionDistance(rightRoomData, 0);
if(objDis < 30)
{
upDisY = (objPosY + 30) - objDis;
if(curPosY > upDisY)
{
return moveOffset;
}
}
objDis = Room.GetObstructionDistance(rightRoomData, 1);
if(objDis < 30)
{
downDisY = objPosY + Room.GetObstructionDistance(rightRoomData, 1);
if(curPosY < downDisY)
{
return moveOffset;
}
}
}
if(changeRoomData && (GetType() == 20 || GetType() == 21) && Room.IsCloseDoorXId(rightRoomData))
{
OpenTheDoor(-1, rightPosX1, posY);
}
return rightDisX - maxX - 1;
}
objPosY = posY * 30;
upDisY = (objPosY + 30) - Room.GetObstructionDistance(rightRoomData, 0);
downDisY = objPosY + Room.GetObstructionDistance(rightRoomData, 1);
if(curPosY < upDisY && curPosY > downDisY)
{
return rightDisX - maxX - 1 <= moveOffset ? rightDisX - maxX - 1 : moveOffset;
}
}
}
break;
}
}
}
catch(Exception e) { }
return moveOffset;
}
public void SetMessage(String newMsg[], int timer)
{
msgTimer = timer;
msg = newMsg;
}
public int GetMessageTimer()
{
return msgTimer;
}
public int GetMessageHeight(Image img, String msg[], int imgHeight, int gap)
{
if(msg == null)
{
return 0;
} else
{
int strHeight = GameManager.font1.getHeight();
strHeight = gap * 2 + (imgHeight <= strHeight * msg.length ? strHeight * msg.length : imgHeight);
return strHeight;
}
}
public void DrawMessage(Graphics g)
{
int msgHeight = GetMessageHeight(img, msg, 24, 4);
DrawMessage(g, msg, 0, 208 - msgHeight, 24, 24, 4, 0xff0000, 0xffffff);
}
public void DrawMessage(Graphics g, String msg[], int topPosX, int topPosY, int imgWidth, int imgHeight, int gap,
int msgColor, int backColor)
{
if(msgTimer > 0)
{
msgTimer--;
}
if(msg == null)
{
return;
}
int strHeight = GameManager.font1.getHeight();
int msgWidth = 176;
int msgHeight = GetMessageHeight(img, msg, imgHeight, gap);
g.setClip(topPosX, topPosY, msgWidth, msgHeight);
g.setColor(255);
g.fillRect(topPosX, topPosY, msgWidth, msgHeight);
g.setColor(backColor);
g.fillRect(topPosX + 2, topPosY + 2, msgWidth - 4, msgHeight - 4);
g.setColor(msgColor);
for(int i = 0; i < msg.length; i++)
{
g.drawString(msg[i], topPosX + gap * 2 + imgWidth, topPosY + gap + strHeight * i, 20);
}
g.setClip(topPosX + gap, topPosY + gap, imgWidth, imgHeight);
g.drawImage(img, (topPosX - 192) + gap, (topPosY - 72) + gap, 20);
}
public void DrawItem(Graphics g, int itemId, int posX, int posY)
{
int pType = GetType();
if(itemId == 10 || itemId == 11 || itemId == 12 || itemId == 13)
{
itemId = 3;
} else
if(itemId == 7 || itemId == 8 || itemId == 9)
{
itemId = 7;
} else
if(itemId == 14 || itemId == 15 || itemId == 16)
{
itemId = 8;
} else
if(itemId == 17 || itemId == 18)
{
itemId = 5;
} else
if(itemId == 19)
{
itemId = 0;
pType = 20;
}
g.setClip(posX, posY, 21, 21);
g.drawImage(MovingObject.weaponImg, posX - itemId * 21, pType != 20 || itemId >= 3 ? posY - 363 : posY - 342, 20);
}
public void DrawMenu(Graphics g, int posX, int posY)
{
g.setClip(posX, posY, 176, 30);
g.setColor(0);
g.fillRect(posX + 96, posY + 16, 38, 5);
g.setColor(255);
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -