Résolu Supprimer le flou de l'écran titre
-
Salut a tous, je modifie l’écran titre pour le faire ressembler a celui de MGS1. Jusqu’a la rien de bien compliqué, juste que ça affiche ça :
J’aimerais que l’image s’affiche nette, sans cet espèce de flou tout meuche. Je pense qu’il faut toucher a un truc la dedans, mais je n’y connais rien en GL11private void drawPanorama(int par1, int par2, float par3) { Tessellator tessellator = Tessellator.instance; GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glPushMatrix(); GL11.glLoadIdentity(); Project.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glPushMatrix(); GL11.glLoadIdentity(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F); GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); byte b0 = 8; for (int k = 0; k < b0 * b0; ++k) { GL11.glPushMatrix(); float f1 = ((float)(k % b0) / (float)b0 - 0.5F) / 64.0F; float f2 = ((float)(k / b0) / (float)b0 - 0.5F) / 64.0F; float f3 = 0.0F; GL11.glTranslatef(f1, f2, f3); GL11.glRotatef(MathHelper.sin(((float)this.panoramaTimer + par3) / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(-((float)this.panoramaTimer + par3) * 0.1F, 0.0F, 1.0F, 0.0F); for (int l = 0; l < 6; ++l) { GL11.glPushMatrix(); if (l == 1) { GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); } if (l == 2) { GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); } if (l == 3) { GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); } if (l == 4) { GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); } if (l == 5) { GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F); } this.mc.getTextureManager().bindTexture(titlePanoramaPaths[l]); tessellator.startDrawingQuads(); tessellator.setColorRGBA_I(16777215, 255 / (k + 1)); float f4 = 0.0F; tessellator.addVertexWithUV(-1.0D, -1.0D, 1.0D, (double)(0.0F + f4), (double)(0.0F + f4)); tessellator.addVertexWithUV(1.0D, -1.0D, 1.0D, (double)(1.0F - f4), (double)(0.0F + f4)); tessellator.addVertexWithUV(1.0D, 1.0D, 1.0D, (double)(1.0F - f4), (double)(1.0F - f4)); tessellator.addVertexWithUV(-1.0D, 1.0D, 1.0D, (double)(0.0F + f4), (double)(1.0F - f4)); tessellator.draw(); GL11.glPopMatrix(); } GL11.glPopMatrix(); GL11.glColorMask(true, true, true, false); } tessellator.setTranslation(0.0D, 0.0D, 0.0D); GL11.glColorMask(true, true, true, true); GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glPopMatrix(); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glPopMatrix(); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_DEPTH_TEST); }
Donc merci a quiconque qui pourrait m’aider.
Et j’aimerais par ailleurs aussi supprimer le GUI en dessous de ces boutons, et changer leurs polices d’écritures. -
GL11, c’est une classe de LWJGL qui permet de utiliser OpenGL sur java
je pense que le flou provien d’un GL11.glEnable();
Essaye d’enlever : GL11.glEnable(GL11.GL_BLEND); -
C’est bon j’ai trouvé, il suffisait d’enlever
tessellator.addVertexWithUV((double)j, (double)k, (double)this.zLevel, (double)(0.0F + f1), 1.0D); tessellator.addVertexWithUV((double)j, 0.0D, (double)this.zLevel, (double)(1.0F + f1), 1.0D); tessellator.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(1.0F + f1), 0.0D); tessellator.addVertexWithUV(0.0D, (double)k, (double)this.zLevel, (double)(0.0F + f1), 0.0D);
mais j’ai toujours cet espèce de filtre blanc tout dégeu
-
Salut,
Regarde la réponse de robin à mon poste je pense que cela va répondre à ton problème.
http://www.minecraftforgefrance.fr/showthread.php?tid=1311 -
@‘Sebenf0rce’:
Salut,
Regarde la réponse de robin à mon poste je pense que cela va répondre à ton problème.
http://www.minecraftforgefrance.fr/showthread.php?tid=1311C’est parfait, mais il y a toujours le filtre blanc :
et l’image :
-
Étrange ça, moi je ne l’avais pas sur mon code de test pour l’image fixe.
Tu peux envoyer ton code ? -
@‘robin4002’:
Étrange ça, moi je ne l’avais pas sur mon code de test pour l’image fixe.
Tu peux envoyer ton code ?Cadeau :
package fr.nolancraft.mgs.Proxies; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URI; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Random; import java.util.concurrent.atomic.AtomicInteger; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButtonLanguage; import net.minecraft.client.gui.GuiConfirmOpenLink; import net.minecraft.client.gui.GuiLanguage; import net.minecraft.client.gui.GuiMultiplayer; import net.minecraft.client.gui.GuiOptions; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreenOnlineServers; import net.minecraft.client.gui.GuiSelectWorld; import net.minecraft.client.gui.GuiYesNo; import net.minecraft.client.mco.ExceptionMcoService; import net.minecraft.client.mco.ExceptionRetryCall; import net.minecraft.client.mco.GuiScreenClientOutdated; import net.minecraft.client.mco.McoClient; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.DynamicTexture; import net.minecraft.client.resources.I18n; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Session; import net.minecraft.world.demo.DemoWorldServer; import net.minecraft.world.storage.ISaveFormat; import net.minecraft.world.storage.WorldInfo; import org.apache.commons.io.Charsets; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.lwjgl.opengl.GL11; import com.google.common.base.Strings; import com.google.common.collect.Lists; import cpw.mods.fml.client.GuiModList; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiCustomMainMenu extends GuiScreen { private static final AtomicInteger field_146973_f = new AtomicInteger(0); private static final Logger logger = LogManager.getLogger(); /** The RNG used by the Main Menu Screen. */ private static final Random rand = new Random(); /** Counts the number of screen updates. */ private float updateCounter; /** The splash message. */ private String splashText; private GuiButton buttonResetDemo; /** Timer used to rotate the panorama, increases every tick. */ @SuppressWarnings("unused") private int panoramaTimer; /** * Texture allocated for the current viewport of the main menu's panorama background. */ private DynamicTexture viewportTexture; private boolean field_96141_q = true; private static boolean field_96140_r; private static boolean field_96139_s; private final Object field_104025_t = new Object(); private String field_92025_p; private String field_146972_A; private String field_104024_v; private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt"); private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("mgs", "textures/gui/title/minecraft.png"); /** An array of all the paths to the panorama pictures. */ private final ResourceLocation backGround = new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"); // private static final ResourceLocation[] titlePanoramaPaths = new ResourceLocation[] {new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png")}; public static final String field_96138_a = "Please click " + EnumChatFormatting.UNDERLINE + "here" + EnumChatFormatting.RESET + " for more information."; private int field_92024_r; private int field_92023_s; private int field_92022_t; private int field_92021_u; private int field_92020_v; private int field_92019_w; @SuppressWarnings("unused") private ResourceLocation field_110351_G; private GuiButton minecraftRealmsButton; @SuppressWarnings("unused") private static final String __OBFID = "CL_00001154"; private GuiButton fmlModButton = null; @SuppressWarnings({ "rawtypes", "unchecked" }) public GuiCustomMainMenu() { this.field_146972_A = field_96138_a; this.splashText = "missingno"; BufferedReader bufferedreader = null; try { ArrayList arraylist = new ArrayList(); bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8)); String s; while ((s = bufferedreader.readLine()) != null) { s = s.trim(); if (!s.isEmpty()) { arraylist.add(s); } } if (!arraylist.isEmpty()) { do { this.splashText = (String)arraylist.get(rand.nextInt(arraylist.size())); } while (this.splashText.hashCode() == 125780783); } } catch (IOException ioexception1) { ; } finally { if (bufferedreader != null) { try { bufferedreader.close(); } catch (IOException ioexception) { ; } } } this.updateCounter = rand.nextFloat(); this.field_92025_p = ""; if (!OpenGlHelper.openGL21) { this.field_92025_p = "Old graphics card detected; this may prevent you from"; this.field_146972_A = "playing in the far future as OpenGL 2.1 will be required."; this.field_104024_v = "https://help.mojang.com/customer/portal/articles/325948?ref=game"; } } /** * Called from the main game loop to update the screen. */ public void updateScreen() { ++this.panoramaTimer; } /** * Returns true if this GUI should pause the game when it is displayed in single-player */ public boolean doesGuiPauseGame() { return false; } /** * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e). */ protected void keyTyped(char par1, int par2) {} /** * Adds the buttons (and other controls) to the screen in question. */ @SuppressWarnings({ "unused", "unchecked" }) public void initGui() { this.viewportTexture = new DynamicTexture(256, 256); this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture); Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); if (calendar.get(2) + 1 == 11 && calendar.get(5) == 9) { this.splashText = "Happy birthday, ez!"; } else if (calendar.get(2) + 1 == 6 && calendar.get(5) == 1) { this.splashText = "Happy birthday, Notch!"; } else if (calendar.get(2) + 1 == 12 && calendar.get(5) == 24) { this.splashText = "Merry X-mas!"; } else if (calendar.get(2) + 1 == 1 && calendar.get(5) == 1) { this.splashText = "Happy new year!"; } else if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31) { this.splashText = "OOoooOOOoooo! Spooky!"; } boolean flag = true; int i = this.height / 4 + 48; if (this.mc.isDemo()) { this.addDemoButtons(i, 24); } else { this.addSingleplayerMultiplayerButtons(i, 24); } this.func_130020_g(); this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0]))); this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0]))); this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12)); Object object = this.field_104025_t; synchronized (this.field_104025_t) { this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p); this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A); int j = Math.max(this.field_92023_s, this.field_92024_r); this.field_92022_t = (this.width - j) / 2; this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24; this.field_92020_v = this.field_92022_t + j; this.field_92019_w = this.field_92021_u + 24; } } private void func_130020_g() { if (this.field_96141_q) { if (!field_96140_r) { field_96140_r = true; (new Thread("MCO Availability Checker #" + field_146973_f.incrementAndGet()) { @SuppressWarnings("unused") private static final String __OBFID = "CL_00001155"; public void run() { Session session = GuiCustomMainMenu.this.mc.getSession(); McoClient mcoclient = new McoClient(session.getSessionID(), session.getUsername(), "1.7.2", Minecraft.getMinecraft().getProxy()); boolean flag = false; for (int i = 0; i < 3; ++i) { try { Boolean obool = mcoclient.func_148687_b(); if (obool.booleanValue()) { GuiCustomMainMenu.this.func_130022_h(); } GuiCustomMainMenu.field_96139_s = obool.booleanValue(); } catch (ExceptionRetryCall exceptionretrycall) { flag = true; } catch (ExceptionMcoService exceptionmcoservice) { GuiCustomMainMenu.logger.error("Couldn\'t connect to Realms"); } catch (IOException ioexception) { GuiCustomMainMenu.logger.error("Couldn\'t parse response connecting to Realms"); } if (!flag) { break; } try { Thread.sleep(10000L); } catch (InterruptedException interruptedexception) { Thread.currentThread().interrupt(); } } } }).start(); } else if (field_96139_s) { this.func_130022_h(); } } } private void func_130022_h() { this.minecraftRealmsButton.visible = true; fmlModButton.yPosition = 98; fmlModButton.xPosition = this.width / 2 + 2; } /** * Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game. */ @SuppressWarnings("unchecked") private void addSingleplayerMultiplayerButtons(int par1, int par2) { this.buttonList.add(new GuiButton(1, this.width / 2 - 100, par1, I18n.format("menu.singleplayer", new Object[0]))); this.buttonList.add(new GuiButton(2, this.width / 2 - 100, par1 + par2 * 1, I18n.format("menu.multiplayer", new Object[0]))); //If Minecraft Realms is enabled, halve the size of both buttons and set them next to eachother. fmlModButton = new GuiButton(6, this.width / 2 - 100, par1 + par2 * 2, "Mods"); this.buttonList.add(fmlModButton); } /** * Adds Demo buttons on Main Menu for players who are playing Demo. */ @SuppressWarnings("unchecked") private void addDemoButtons(int par1, int par2) { this.buttonList.add(new GuiButton(11, this.width / 2 - 100, par1, I18n.format("menu.playdemo", new Object[0]))); this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, par1 + par2 * 1, I18n.format("menu.resetdemo", new Object[0]))); ISaveFormat isaveformat = this.mc.getSaveLoader(); WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World"); if (worldinfo == null) { this.buttonResetDemo.enabled = false; } } protected void actionPerformed(GuiButton p_146284_1_) { if (p_146284_1_.id == 0) { this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings)); } if (p_146284_1_.id == 5) { this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager())); } if (p_146284_1_.id == 1) { this.mc.displayGuiScreen(new GuiSelectWorld(this)); } if (p_146284_1_.id == 2) { this.mc.displayGuiScreen(new GuiMultiplayer(this)); } if (p_146284_1_.id == 14 && this.minecraftRealmsButton.visible) { this.func_140005_i(); } if (p_146284_1_.id == 4) { this.mc.shutdown(); } if (p_146284_1_.id == 6) { this.mc.displayGuiScreen(new GuiModList(this)); } if (p_146284_1_.id == 11) { this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings); } if (p_146284_1_.id == 12) { ISaveFormat isaveformat = this.mc.getSaveLoader(); WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World"); if (worldinfo != null) { GuiYesNo guiyesno = GuiSelectWorld.func_146623_a(this, worldinfo.getWorldName(), 12); this.mc.displayGuiScreen(guiyesno); } } } private void func_140005_i() { Session session = this.mc.getSession(); McoClient mcoclient = new McoClient(session.getSessionID(), session.getUsername(), "1.7.2", Minecraft.getMinecraft().getProxy()); try { if (mcoclient.func_148695_c().booleanValue()) { this.mc.displayGuiScreen(new GuiScreenClientOutdated(this)); } else { this.mc.displayGuiScreen(new GuiScreenOnlineServers(this)); } } catch (ExceptionMcoService exceptionmcoservice) { logger.error("Couldn\'t connect to realms"); } catch (IOException ioexception) { logger.error("Couldn\'t connect to realms"); } } @SuppressWarnings({ "unchecked", "rawtypes" }) public void confirmClicked(boolean par1, int par2) { if (par1 && par2 == 12) { ISaveFormat isaveformat = this.mc.getSaveLoader(); isaveformat.flushCache(); isaveformat.deleteWorldDirectory("Demo_World"); this.mc.displayGuiScreen(this); } else if (par2 == 13) { if (par1) { try { Class oclass = Class.forName("java.awt.Desktop"); Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]); oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.field_104024_v)}); } catch (Throwable throwable) { logger.error("Couldn\'t open link", throwable); } } this.mc.displayGuiScreen(this); } } /** * Draws the main menu panorama */ /** * Rotate and blurs the skybox view in the main menu */ /** * Renders the skybox in the main menu */ private void renderBackGround() { GL11.glViewport(0, 0, 256, 256); this.mc.getTextureManager().bindTexture(backGround); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F); int k = this.width; int l = this.height; tessellator.addVertexWithUV(0, 0, this.zLevel, 0, 0); tessellator.addVertexWithUV(0, l, this.zLevel, 0, 1); tessellator.addVertexWithUV(k, l, this.zLevel, 1, 1); tessellator.addVertexWithUV(k, 0, this.zLevel, 1, 0); tessellator.draw(); } /** * Draws the screen and all the components in it. */ public void drawScreen(int par1, int par2, float par3) { GL11.glDisable(GL11.GL_ALPHA_TEST); this.renderBackGround(); GL11.glEnable(GL11.GL_ALPHA_TEST); Tessellator tessellator = Tessellator.instance; short short1 = 274; int k = this.width / 2 - short1 / 2; byte b0 = 30; this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215); this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE); this.mc.getTextureManager().bindTexture(minecraftTitleTextures); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); if ((double)this.updateCounter < 1.0E-4D) { this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44); this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44); this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44); this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44); this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44); } else { this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44); this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44); } tessellator.setColorOpaque_I(-1); GL11.glPushMatrix(); GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F); GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F); f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32); GL11.glScalef(f1, f1, f1); this.drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256); GL11.glPopMatrix(); String s = "Minecraft 1.7.2"; if (this.mc.isDemo()) { s = s + " Demo"; } List <string>brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true)); for (int i = 0; i < brandings.size(); i++) { String brd = brandings.get(i); if (!Strings.isNullOrEmpty(brd)) { this.drawString(this.fontRendererObj, brd, 2, this.height - ( 10 + i * (this.fontRendererObj.FONT_HEIGHT + 1)), 16777215); } } String s1 = "Copyright Mojang AB. Do not distribute!"; this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1); if (this.field_92025_p != null && this.field_92025_p.length() > 0) { drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512); this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1); this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1); } super.drawScreen(par1, par2, par3); } /** * Called when the mouse is clicked. */ @SuppressWarnings("unused") protected void mouseClicked(int par1, int par2, int par3) { super.mouseClicked(par1, par2, par3); Object object = this.field_104025_t; synchronized (this.field_104025_t) { if (this.field_92025_p.length() > 0 && par1 >= this.field_92022_t && par1 <= this.field_92020_v && par2 >= this.field_92021_u && par2 <= this.field_92019_w) { GuiConfirmOpenLink guiconfirmopenlink = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true); guiconfirmopenlink.func_146358_g(); this.mc.displayGuiScreen(guiconfirmopenlink); } } } }
(un c/c de la classe de MC)</string>
-
Essayes de remplacer
GL11.glDisable(GL11.GL_ALPHA_TEST);
this.renderBackGround();
GL11.glEnable(GL11.GL_ALPHA_TEST);
par juste
this.renderBackGround();
? -
Non, aucun changements.
-
Et en enlevant les
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
? -
Toujours pas. Je remets le code au cas ou :
package fr.nolancraft.mgs.Proxies; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URI; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Random; import java.util.concurrent.atomic.AtomicInteger; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButtonLanguage; import net.minecraft.client.gui.GuiConfirmOpenLink; import net.minecraft.client.gui.GuiLanguage; import net.minecraft.client.gui.GuiMultiplayer; import net.minecraft.client.gui.GuiOptions; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreenOnlineServers; import net.minecraft.client.gui.GuiSelectWorld; import net.minecraft.client.gui.GuiYesNo; import net.minecraft.client.mco.ExceptionMcoService; import net.minecraft.client.mco.ExceptionRetryCall; import net.minecraft.client.mco.GuiScreenClientOutdated; import net.minecraft.client.mco.McoClient; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.DynamicTexture; import net.minecraft.client.resources.I18n; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Session; import net.minecraft.world.demo.DemoWorldServer; import net.minecraft.world.storage.ISaveFormat; import net.minecraft.world.storage.WorldInfo; import org.apache.commons.io.Charsets; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.lwjgl.opengl.GL11; import com.google.common.base.Strings; import com.google.common.collect.Lists; import cpw.mods.fml.client.GuiModList; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiCustomMainMenu extends GuiScreen { private static final AtomicInteger field_146973_f = new AtomicInteger(0); private static final Logger logger = LogManager.getLogger(); /** The RNG used by the Main Menu Screen. */ private static final Random rand = new Random(); /** Counts the number of screen updates. */ private float updateCounter; /** The splash message. */ private String splashText; private GuiButton buttonResetDemo; /** Timer used to rotate the panorama, increases every tick. */ @SuppressWarnings("unused") private int panoramaTimer; /** * Texture allocated for the current viewport of the main menu's panorama background. */ private DynamicTexture viewportTexture; private boolean field_96141_q = true; private static boolean field_96140_r; private static boolean field_96139_s; private final Object field_104025_t = new Object(); private String field_92025_p; private String field_146972_A; private String field_104024_v; private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt"); private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("mgs", "textures/gui/title/minecraft.png"); /** An array of all the paths to the panorama pictures. */ private final ResourceLocation backGround = new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"); // private static final ResourceLocation[] titlePanoramaPaths = new ResourceLocation[] {new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png"), new ResourceLocation("mgs","textures/gui/title/background/panorama_3.png")}; public static final String field_96138_a = "Please click " + EnumChatFormatting.UNDERLINE + "here" + EnumChatFormatting.RESET + " for more information."; private int field_92024_r; private int field_92023_s; private int field_92022_t; private int field_92021_u; private int field_92020_v; private int field_92019_w; @SuppressWarnings("unused") private ResourceLocation field_110351_G; private GuiButton minecraftRealmsButton; @SuppressWarnings("unused") private static final String __OBFID = "CL_00001154"; private GuiButton fmlModButton = null; @SuppressWarnings({ "rawtypes", "unchecked" }) public GuiCustomMainMenu() { this.field_146972_A = field_96138_a; this.splashText = "missingno"; BufferedReader bufferedreader = null; try { ArrayList arraylist = new ArrayList(); bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8)); String s; while ((s = bufferedreader.readLine()) != null) { s = s.trim(); if (!s.isEmpty()) { arraylist.add(s); } } if (!arraylist.isEmpty()) { do { this.splashText = (String)arraylist.get(rand.nextInt(arraylist.size())); } while (this.splashText.hashCode() == 125780783); } } catch (IOException ioexception1) { ; } finally { if (bufferedreader != null) { try { bufferedreader.close(); } catch (IOException ioexception) { ; } } } this.updateCounter = rand.nextFloat(); this.field_92025_p = ""; if (!OpenGlHelper.openGL21) { this.field_92025_p = "Old graphics card detected; this may prevent you from"; this.field_146972_A = "playing in the far future as OpenGL 2.1 will be required."; this.field_104024_v = "https://help.mojang.com/customer/portal/articles/325948?ref=game"; } } /** * Called from the main game loop to update the screen. */ public void updateScreen() { ++this.panoramaTimer; } /** * Returns true if this GUI should pause the game when it is displayed in single-player */ public boolean doesGuiPauseGame() { return false; } /** * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e). */ protected void keyTyped(char par1, int par2) {} /** * Adds the buttons (and other controls) to the screen in question. */ @SuppressWarnings({ "unused", "unchecked" }) public void initGui() { this.viewportTexture = new DynamicTexture(256, 256); this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture); Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); if (calendar.get(2) + 1 == 11 && calendar.get(5) == 9) { this.splashText = "Happy birthday, ez!"; } else if (calendar.get(2) + 1 == 6 && calendar.get(5) == 1) { this.splashText = "Happy birthday, Notch!"; } else if (calendar.get(2) + 1 == 12 && calendar.get(5) == 24) { this.splashText = "Merry X-mas!"; } else if (calendar.get(2) + 1 == 1 && calendar.get(5) == 1) { this.splashText = "Happy new year!"; } else if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31) { this.splashText = "OOoooOOOoooo! Spooky!"; } boolean flag = true; int i = this.height / 4 + 48; if (this.mc.isDemo()) { this.addDemoButtons(i, 24); } else { this.addSingleplayerMultiplayerButtons(i, 24); } this.func_130020_g(); this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0]))); this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0]))); this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12)); Object object = this.field_104025_t; synchronized (this.field_104025_t) { this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p); this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A); int j = Math.max(this.field_92023_s, this.field_92024_r); this.field_92022_t = (this.width - j) / 2; this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24; this.field_92020_v = this.field_92022_t + j; this.field_92019_w = this.field_92021_u + 24; } } private void func_130020_g() { if (this.field_96141_q) { if (!field_96140_r) { field_96140_r = true; (new Thread("MCO Availability Checker #" + field_146973_f.incrementAndGet()) { @SuppressWarnings("unused") private static final String __OBFID = "CL_00001155"; public void run() { Session session = GuiCustomMainMenu.this.mc.getSession(); McoClient mcoclient = new McoClient(session.getSessionID(), session.getUsername(), "1.7.2", Minecraft.getMinecraft().getProxy()); boolean flag = false; for (int i = 0; i < 3; ++i) { try { Boolean obool = mcoclient.func_148687_b(); if (obool.booleanValue()) { GuiCustomMainMenu.this.func_130022_h(); } GuiCustomMainMenu.field_96139_s = obool.booleanValue(); } catch (ExceptionRetryCall exceptionretrycall) { flag = true; } catch (ExceptionMcoService exceptionmcoservice) { GuiCustomMainMenu.logger.error("Couldn\'t connect to Realms"); } catch (IOException ioexception) { GuiCustomMainMenu.logger.error("Couldn\'t parse response connecting to Realms"); } if (!flag) { break; } try { Thread.sleep(10000L); } catch (InterruptedException interruptedexception) { Thread.currentThread().interrupt(); } } } }).start(); } else if (field_96139_s) { this.func_130022_h(); } } } private void func_130022_h() { this.minecraftRealmsButton.visible = true; fmlModButton.yPosition = 98; fmlModButton.xPosition = this.width / 2 + 2; } /** * Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game. */ @SuppressWarnings("unchecked") private void addSingleplayerMultiplayerButtons(int par1, int par2) { this.buttonList.add(new GuiButton(1, this.width / 2 - 100, par1, I18n.format("menu.singleplayer", new Object[0]))); this.buttonList.add(new GuiButton(2, this.width / 2 - 100, par1 + par2 * 1, I18n.format("menu.multiplayer", new Object[0]))); //If Minecraft Realms is enabled, halve the size of both buttons and set them next to eachother. fmlModButton = new GuiButton(6, this.width / 2 - 100, par1 + par2 * 2, "Mods"); this.buttonList.add(fmlModButton); } /** * Adds Demo buttons on Main Menu for players who are playing Demo. */ @SuppressWarnings("unchecked") private void addDemoButtons(int par1, int par2) { this.buttonList.add(new GuiButton(11, this.width / 2 - 100, par1, I18n.format("menu.playdemo", new Object[0]))); this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, par1 + par2 * 1, I18n.format("menu.resetdemo", new Object[0]))); ISaveFormat isaveformat = this.mc.getSaveLoader(); WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World"); if (worldinfo == null) { this.buttonResetDemo.enabled = false; } } protected void actionPerformed(GuiButton p_146284_1_) { if (p_146284_1_.id == 0) { this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings)); } if (p_146284_1_.id == 5) { this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager())); } if (p_146284_1_.id == 1) { this.mc.displayGuiScreen(new GuiSelectWorld(this)); } if (p_146284_1_.id == 2) { this.mc.displayGuiScreen(new GuiMultiplayer(this)); } if (p_146284_1_.id == 14 && this.minecraftRealmsButton.visible) { this.func_140005_i(); } if (p_146284_1_.id == 4) { this.mc.shutdown(); } if (p_146284_1_.id == 6) { this.mc.displayGuiScreen(new GuiModList(this)); } if (p_146284_1_.id == 11) { this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings); } if (p_146284_1_.id == 12) { ISaveFormat isaveformat = this.mc.getSaveLoader(); WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World"); if (worldinfo != null) { GuiYesNo guiyesno = GuiSelectWorld.func_146623_a(this, worldinfo.getWorldName(), 12); this.mc.displayGuiScreen(guiyesno); } } } private void func_140005_i() { Session session = this.mc.getSession(); McoClient mcoclient = new McoClient(session.getSessionID(), session.getUsername(), "1.7.2", Minecraft.getMinecraft().getProxy()); try { if (mcoclient.func_148695_c().booleanValue()) { this.mc.displayGuiScreen(new GuiScreenClientOutdated(this)); } else { this.mc.displayGuiScreen(new GuiScreenOnlineServers(this)); } } catch (ExceptionMcoService exceptionmcoservice) { logger.error("Couldn\'t connect to realms"); } catch (IOException ioexception) { logger.error("Couldn\'t connect to realms"); } } @SuppressWarnings({ "unchecked", "rawtypes" }) public void confirmClicked(boolean par1, int par2) { if (par1 && par2 == 12) { ISaveFormat isaveformat = this.mc.getSaveLoader(); isaveformat.flushCache(); isaveformat.deleteWorldDirectory("Demo_World"); this.mc.displayGuiScreen(this); } else if (par2 == 13) { if (par1) { try { Class oclass = Class.forName("java.awt.Desktop"); Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]); oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.field_104024_v)}); } catch (Throwable throwable) { logger.error("Couldn\'t open link", throwable); } } this.mc.displayGuiScreen(this); } } /** * Draws the main menu panorama */ /** * Rotate and blurs the skybox view in the main menu */ /** * Renders the skybox in the main menu */ private void renderBackGround() { GL11.glViewport(0, 0, 256, 256); this.mc.getTextureManager().bindTexture(backGround); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); // GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); // GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F); int k = this.width; int l = this.height; tessellator.addVertexWithUV(0, 0, this.zLevel, 0, 0); tessellator.addVertexWithUV(0, l, this.zLevel, 0, 1); tessellator.addVertexWithUV(k, l, this.zLevel, 1, 1); tessellator.addVertexWithUV(k, 0, this.zLevel, 1, 0); tessellator.draw(); } /** * Draws the screen and all the components in it. */ public void drawScreen(int par1, int par2, float par3) { // GL11.glDisable(GL11.GL_ALPHA_TEST); this.renderBackGround(); // GL11.glEnable(GL11.GL_ALPHA_TEST); Tessellator tessellator = Tessellator.instance; short short1 = 274; int k = this.width / 2 - short1 / 2; byte b0 = 30; this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215); this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE); this.mc.getTextureManager().bindTexture(minecraftTitleTextures); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); if ((double)this.updateCounter < 1.0E-4D) { this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44); this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44); this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44); this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44); this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44); } else { this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44); this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44); } tessellator.setColorOpaque_I(-1); GL11.glPushMatrix(); GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F); GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F); f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32); GL11.glScalef(f1, f1, f1); this.drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256); GL11.glPopMatrix(); String s = "Minecraft 1.7.2"; if (this.mc.isDemo()) { s = s + " Demo"; } List <string>brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true)); for (int i = 0; i < brandings.size(); i++) { String brd = brandings.get(i); if (!Strings.isNullOrEmpty(brd)) { this.drawString(this.fontRendererObj, brd, 2, this.height - ( 10 + i * (this.fontRendererObj.FONT_HEIGHT + 1)), 16777215); } } String s1 = "Copyright Mojang AB. Do not distribute!"; this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1); if (this.field_92025_p != null && this.field_92025_p.length() > 0) { drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512); this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1); this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1); } super.drawScreen(par1, par2, par3); } /** * Called when the mouse is clicked. */ @SuppressWarnings("unused") protected void mouseClicked(int par1, int par2, int par3) { super.mouseClicked(par1, par2, par3); Object object = this.field_104025_t; synchronized (this.field_104025_t) { if (this.field_92025_p.length() > 0 && par1 >= this.field_92022_t && par1 <= this.field_92020_v && par2 >= this.field_92021_u && par2 <= this.field_92019_w) { GuiConfirmOpenLink guiconfirmopenlink = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true); guiconfirmopenlink.func_146358_g(); this.mc.displayGuiScreen(guiconfirmopenlink); } } } } ```</string>
-
Il faudrait attendre le passage de xavpok.
-
Je vois que l’on m’attendait ^^
Tu devrais avoir une methode appellée blurAndRenderSkybox, essaie de trouver tout ce qui correspond au flou (Shaders, rendu de texture autre que vers la fenetre, etc.) et retire.
Ou attend demain que je teste et je te propose une solution.PS: MrLiop, glEnable(GL_BLEND) permet de gerer la transparence, cf. Tuto “Du Java, LWJGL et OpenGL”
Écrit avec Tapatalk depuis mon mobile. Pardonnez les possibles fautes, j’aime juste pas écrire avec mon mobile.
-
Je croie que tu doit enlever cette ligne tu peut enlever aussi elle en dessous si tu veut elle va avec:
this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
-
@‘darkvince37’:
Je croie que tu doit enlever cette ligne tu peut enlever aussi elle en dessous si tu veut elle va avec:
this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
Cela marchera aussi
-
Le dégradé blanc c’est ces deux lignes
this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215); this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
-
Merci, c’est parfait !
-
Je up, pour :
- Je trouve que les règles ne sont pas respecter
- Que tu le passe en résolut
- Un membre du staff le déplace (pas de leur faute)
- Et pour te mettre une réputation négative pour, je cite :
Lorsque votre problème à été résolu, cliquez sur le bouton éditer de votre poste, faite "édition complète" et changez la balise en "résolu". Ainsi il est plus simple de différencier les postes résolus des autres.
- Je trouve que les gens s’en foute totalement du post de elias page 1, et que il et même pas lut par la plus par. Et donc j’aimerais que tous les poste pas mis en résolut, leur auteur subisse une sanction.
-
Je me permets de re-up légérement, mais je trouve ça vraiment moyen de ta part diangle.
Déjà si tu vises précisément nolan alors c’est plutot quelque chose de personnelle, si c’est pas le cas, alors pourquoi ne le faire que sur son sujet, car plein d’autre sujet ne sont pas mis en résolu, au final tu le pénalises seulement lui?
“Et donc j’aimerai que tous les postes pas mis en résolu…” c’est le boulot du staff, ils font ce qu’ils veulent tu as pas vraiment à leur demander quoi que ce soit.
Enfin, ou est l’interet de up un post pour ça vu que de toute façon le staff les mets dans sans suite ou résolu à la fin.
Je suis d’accord sur le fait qu’il faille mettre ses sujets en résolus, mais c’est pas forcément des reflexes que les gens ne passant pas extrêmement souvent sur le forum ont, ou bien, ils ont simplement mis de côté l’idée et compte la re-aborder plus tard, ou une autre raison quelconque.
Maintenant je vois ce message comme un moyen de faire genre: “je suis actif un minimum, je fais genre de participer à la mdération dans le but d’intégrer le staff”, tu as beau être autant intégré que tu veux, je trouve que à mes yeux tu fais vraiment l’impression inverse. ça me parait inutilement aggressif et inaproprié. Le staff sait ce qu’il a à faire.
Maintenant je m’en vais proposer une règle contre les déterrage de sujet datant de plus d’un mois pour raison inutile, car au final ça pollue les sujets vraiment actif d’aide, donc c’est même plus chiant.
Cordialement, grég.