Рендер игрока

Версия Minecraft
1.7.10
212
8
29
Код надо оформлять правильно!
Рендерю игрока в главном меню, но выдает краш.

Java:
public void drawEntityOnScreenAtRotation(int posX, int posY,
                                         float scale, float xAngle, float yAngle, EntityLivingBase ent)
{
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glDepthMask(true);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glPushMatrix();
    GL11.glEnable(GL11.GL_COLOR_MATERIAL);
    GL11.glTranslatef(posX, posY, 50.0F);
    GL11.glScalef((-scale), scale, scale);
    GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
    float f2 = ent.renderYawOffset;
    float f3 = ent.rotationYaw;
    float f4 = ent.rotationPitch;
    float f5 = ent.rotationYawHead;
    GL11.glRotatef(135.0F, 0.0F, 1.0F, 0.0F);
    RenderHelper.enableStandardItemLighting();
    GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(xAngle, 1.0F, 0.0F, 0.0F);
    GL11.glRotatef(yAngle, 0.0F, 1.0F, 0.0F);
    ent.renderYawOffset = (float) Math.atan(2.0F / 40.0F) * 20.0F;
    ent.rotationYaw = (float) Math.atan(2.0F / 40.0F) * 40.0F;
    ent.rotationPitch = -((float) Math.atan(2.0F / 40.0F)) * 20.0F;
    ent.rotationYawHead = ent.renderYawOffset;
    GL11.glTranslatef(0.0F, ent.yOffset, 0.0F);
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    float viewY = RenderManager.instance.playerViewY;
    try
    {
        RenderManager.instance.playerViewY = 180.0F;
        RenderManager.instance.renderEntityWithPosYaw(ent, 0.0D, 0.0D,
                                                      0.0D, 0.0F, 1.0F);
    }
    finally
    {
        GL11.glTranslatef(0.0F, -0.22F, 0.0F);
        OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit,
                                              255.0F * 0.8F, 255.0F * 0.8F);
        RenderManager.instance.playerViewY = viewY;
        ent.renderYawOffset = f2;
        ent.rotationYaw = f3;
        ent.rotationPitch = f4;
        ent.rotationYawHead = f5;
        GL11.glPopMatrix();
        RenderHelper.disableStandardItemLighting();
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit);
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit);
    }

}
Java:
public void drawScreen(int x, int y, float par2) {
    ++this.rendererUpdateCount;
    byte p_146976_2_ = 0;
    byte p_146976_3_ = 0;
    this.drawBackground(x, y, par2);      super.drawScreen(x, y, par2);
    drawEntityOnScreenAtRotation(this.guiLeft + 23, this.guiTop + 23, 51, (float)(this.guiLeft + 43 - p_146976_2_), (float)(this.guiTop + 45 - 30 - p_146976_3_), this.mc.thePlayer);
    GL11.glPushMatrix();

}
---- Minecraft Crash Report ----
// Oops.

Time: 13.12.17 16:39
Description: Rendering screen

java.lang.NullPointerException: Rendering screen
at mymod.UIMainMenu.drawScreen(UIMainMenu.java:131)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1137)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1067)
at net.minecraft.client.Minecraft.run(Minecraft.java:962)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
at com.arrou.zmc.client.UI.UIMainMenu.drawScreen(UIMainMenu.java:131)

-- Screen render details --
Details:
Screen name: com.arrou.zmc.client.UI.UIMainMenu
Mouse location: Scaled: (0, 239). Absolute: (0, 0)
Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2
Stacktrace:
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1137)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1067)
at net.minecraft.client.Minecraft.run(Minecraft.java:962)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)

-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 8 (amd64) version 6.2
Java Version: 1.8.0_131, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 676053424 bytes (644 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 4 mods loaded, 4 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
UCHIJA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
UCHIJA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)
UCHIJA mymod{1.0} [mymod] (bin)
GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.2.11774 Compatibility Profile Context' Renderer: 'AMD Radeon HD 7640G + 7670M Dual Graphics'
Launched Version: 1.7.10
LWJGL: 2.9.1
OpenGL: AMD Radeon HD 7640G + 7670M Dual Graphics GL version 4.2.11774 Compatibility Profile Context, ATI Technologies Inc.
GL Caps: Using GL 1.3 multitexturing.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Anisotropic filtering is supported and maximum anisotropy is 16.
Shaders are available because OpenGL 2.1 is supported.

Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: []
Current Language: English (US)
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Anisotropic Filtering: Off (1)
 
Последнее редактирование модератором:

deleted.user

Мошенник
321
43
Либо костыль - предварительно коннектиться к лобби\серверу, получать оттуда игрока, рендерить его и вот. Или создавать фейк игрока, сохранив его какие либо слоты, что б в меню нормально отрисовать что на нем одето было и так далее. Костыли, но тоже вариант. Смотря что тебе в итоге нужно. Могу подкинуть код кое-какой конечно, но не буду, т.к. это не так и сложно :)
 
1,057
50
234
Создать мир в меню, как это сделано в bspkrs lib
 
Сверху