Résolu Rotation d'une image en fonction de la camera
-
Bonjour toujours dans le cadre de l’indicateur de chat je cherche a faire tourner l’image au dessus du personnage en fonction de la camera j’ai fait cela jusqu’a maintenant :
@SideOnly(Side.CLIENT) @SubscribeEvent public void playerRender(RenderPlayerEvent.Pre event) { if (ClientProxy.CHATTING_PLAYERS_USERNAME.contains(event.entityPlayer.getDisplayName())) { RenderManager renderManager = (RenderManager) ObfuscationReflectionHelper.getPrivateValue(Render.class, event.renderer, 1); float scaleFactor = 0.10F / 6.0F; float yOffsetFactor = -0.05F; GL11.glPushMatrix(); GL11.glTranslatef(0.0F, 0.0F - yOffsetFactor, 2.92F); GL11.glNormal3f(0.0F, 1.0F, 0.0F); GL11.glRotatef(-renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GL11.glScalef(-scaleFactor, -scaleFactor, scaleFactor); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); Minecraft.getMinecraft().renderEngine .bindTexture(new ResourceLocation("heimnormod", "textures/items/bulle.png")); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(-16 + 0, -40 + 32, -260, 0.1F, 0.1F); tessellator.addVertexWithUV(-16 + 32, -40 + 32, -260, 0.1F, 0.0F); tessellator.addVertexWithUV(-16 + 32, -40 + 0, -260, 0.0F, 0.0F); tessellator.addVertexWithUV(-16 + 0, -40 + 0, -260, 0.0F, 0.1F); tessellator.draw(); GL11.glPopMatrix(); } } }
Pour le moment l’image tourne bien en fonction de la camera mais l’image fait plutot des cercles comme ceci :
Or, je voudrais qu’elle reste au dessus du personnage et qu’elle tourne sur elle même.
Merci d’avance pour votre aide !
-
Salut,
Essaie avec ceci après le glNormal3f:
GL11.glRotatef(90, 1, 0, 0); -
L’image est couchée et continue de suivre le même chemin en fonction de la camera
Problème résolu, je balance le code quand même si ça intéresse du monde
@SideOnly(Side.CLIENT) @SubscribeEvent public void playerRender(RenderPlayerEvent.Pre event) { if (ClientProxy.CHATTING_PLAYERS_USERNAME.contains(event.entityPlayer.getDisplayName())) { RenderManager renderManager = (RenderManager) ObfuscationReflectionHelper.getPrivateValue(Render.class, event.renderer, 1); float scaleFactor = 0.10F / 6.0F; float yOffsetFactor = -0.05F; GL11.glPushMatrix(); GL11.glTranslated(0, -1, 0); GL11.glNormal3f(0.0F, 0.0F, 0.0F); GL11.glRotatef(-renderManager.playerViewY, 0.0F, 0.1F, 0.0F); GL11.glScalef(-scaleFactor, -scaleFactor, scaleFactor); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); Minecraft.getMinecraft().renderEngine .bindTexture(new ResourceLocation("heimnormod", "textures/items/bulle.png")); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(-16 + 0, -120 + 32, -10, 0.1F, 0.1F); tessellator.addVertexWithUV(-16 + 32, -120 + 32, -10, 0.1F, 0.0F); tessellator.addVertexWithUV(-16 + 32, -120 + 0, -10, 0.0F, 0.0F); tessellator.addVertexWithUV(-16 + 0, -120 + 0, -10, 0.0F, 0.1F); tessellator.draw(); GL11.glPopMatrix(); } } }