- 19
- 0
(Я использую переводчик. )
Я написал код, чтобы получить игрок близ игрок.
И здоровье игрока отображается на экране.
Однако, если распознано более одного игрока, игрок будет наложен на экран.
Если второй игрок опознан, как я могу настроить координаты отображения второго игрока?
Я написал код, чтобы получить игрок близ игрок.
И здоровье игрока отображается на экране.
Однако, если распознано более одного игрока, игрок будет наложен на экран.
Если второй игрок опознан, как я могу настроить координаты отображения второго игрока?
Java:
@SubscribeEvent
public void renderNearPlayer(RenderGameOverlayEvent.Post event) throws IOException{
if (event.getType() == RenderGameOverlayEvent.ElementType.TEXT) {
Minecraft mc = Minecraft.getMinecraft();
EntityPlayer player = mc.player;
List<EntityPlayer> e = player.world.getEntitiesWithinAABB(EntityPlayer.class, player.getEntityBoundingBox().grow(5, 5, 5));
if (e.size() > 0) {
for (int i = 0; i <= e.size() - 1; i++) {
EntityPlayer p = (EntityPlayer) e.get(i);
EntityPlayer NearPlayer = mc.world.getPlayerEntityByName(p.getName());
if (p.getUniqueID() != player.getUniqueID() && NearPlayer != null) {
ItemStack head = new ItemStack(Items.SKULL, 1, 3);
head.setTagCompound(new NBTTagCompound());
head.getTagCompound().setTag("SkullOwner", new NBTTagString(p.getName()));
GlStateManager.pushMatrix(); {
GlStateManager.color(1.0F,1.0F,1.0F,1.0F);
GlStateManager.scale(1.2,1.2,0);
mc.getRenderItem().renderItemIntoGUI(head, 0,38);
}
GlStateManager.popMatrix();
drawString(mc.fontRenderer, p.getName(), 20, 50, 0xFFFFFF);
GlStateManager.pushMatrix(); {
GlStateManager.translate(0,0,0);
GlStateManager.scale(0.8, 1,0);
int healthBarWidth = MathHelper.ceil((NearPlayer.getHealth() / player.getMaxHealth()) * 78);
OtherRenderer.drawModalRect(mc, new ResourceLocation(Reference.MOD_ID + ":textures/gui/black.png"), 25 + 1,60 + 1,0,37,78,3);
OtherRenderer.drawModalRect(mc, new ResourceLocation(Reference.MOD_ID + ":textures/gui/black.png"), 25,60,0,34,healthBarWidth,3);
}
GlStateManager.popMatrix();
}
}
}
}
}