Jump to content
Shey

Créer un écran de chargement

Recommended Posts

Créer un écran de chargement

 

-[INTRODUCTION]-

 

 

Bonjour à tous !

Dans ce tutoriel, nous allons faire un écran de chargement ! Je me permet de refaire le tutoriel, car l'autre à était modifier..

 

 

-[SOMMAIRE]-

1]Création du "GuiLoadingScreen

2]Création de l'écran

3]GuiMainMenu

 

 

 

1]Création du GuiLoadingScreen !

Il vous suffit de vous rendre dans le packages : net.minecraft.client.gui, puis créer une nouvelle class "GuiLoadingScreen" !


2]Créer l'écran de chargement !

package net.minecraft.client.gui;

import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.GuiConnecting;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;

public class GuiLoadingScreen
  extends GuiScreen
{
  private final ResourceLocation backGround = new ResourceLocation("textures/gui/title/chargement.png"); // Chargement = Nom de votre image
  private int updateCounter = 0;
  String chargementText = "§6Chargement§f de la porte ..."; // A vous de mettre ce que vous voulez !
  String serverName = "§6Nom"; // A vous de mettre ce que vous voulez !
  String texteHaut = "§6Connexion§7 au serveur ! ..."; // A vous de mettre ce que vous voulez !
  String bfsName = "§7Serveur: Faction"; // A vous de mettre ce que vous voulez !
  
  public void initGui()
  {
    this.buttonList.add(new GuiButton(9, this.width - 100, this.height - 30, 60, 20, "Annuler"));
  }
  
  public void updateScreen()
  {
    this.updateCounter += 1;
    if (this.updateCounter == 100) {
      this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, "IP", PORT)); // Ip = L'ip du serveur ! Port = Port du serveur.
    }
    if (this.updateCounter >= 101) {
      this.mc.displayGuiScreen(new GuiMainMenu());
    }
  }
  
  public void drawBack()
  {
    GL11.glViewport(0, 0, 256, 256);
    this.mc.getTextureManager().bindTexture(this.backGround);
    GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
    Tessellator tessellator = Tessellator.instance;
    tessellator.startDrawingQuads();
    GL11.glTexParameteri(3553, 10241, 9729);
    GL11.glTexParameteri(3553, 10240, 9729);
    tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
    int k = this.width;
    int l = this.height;
    tessellator.addVertexWithUV(0.0D, 0.0D, this.zLevel, 0.0D, 0.0D);
    tessellator.addVertexWithUV(0.0D, l, this.zLevel, 0.0D, 1.0D);
    tessellator.addVertexWithUV(k, l, this.zLevel, 1.0D, 1.0D);
    tessellator.addVertexWithUV(k, 0.0D, this.zLevel, 1.0D, 0.0D);
    tessellator.draw();
  }
  
  public void drawScreen(int par1, int par2, float par3)
  {
    drawBack();
    
    drawHorizontalLine(0, this.width, this.height - 47, 1426063360);
    drawHorizontalLine(0, this.width, this.height - 46, 1426063360);
    drawRect(0, this.height - 45, this.width, this.height, 1426063360);
    
    drawRect(this.width / 2 - 101, this.height - 28, this.width / 2 + 101, this.height - 15, 489386);
    drawRect(this.width / 2 - 100, this.height - 27, this.width / 2 + 100, this.height - 16, 2013243904);
    
    drawRect(this.width / 2 - 100, this.height - 27, this.width / 2 - 100 + this.updateCounter * 2, this.height - 16, -1996510720);
    
    drawCenteredString(this.fontRendererObj, this.chargementText, this.width / 2, this.height - 40, 16777215);
    
    String percent = this.updateCounter + "§6%";
    drawCenteredString(this.fontRendererObj, percent, this.width / 2, this.height - 10, 16777215);
    
    drawCenteredString(this.fontRendererObj, this.texteHaut, this.width / 2, 1, -1);
    
    drawString(this.fontRendererObj, this.bfsName, 10, this.height - 30, -1);
    
    drawString(this.fontRendererObj, this.serverName, 10, this.height - 19, -1);
    
    super.drawScreen(par1, par2, par3);
  }
  
  public void actionPerformed(GuiButton button)
  {
    if (button.id == 9) {
      this.mc.displayGuiScreen(new GuiMainMenu());
    }
  }
}

3]GuiMainMenu

Rendez-vous dans le GuiMainMenu plus précisément ici :

Spoiler

protected void actionPerformed(GuiButton p_146284_1_)

En desous de cet ligne de code :

Spoiler

if (p_146284_1_.id == 0)
      {
          this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
      }

 

Vous allez ajouter ça :

if (p_146284_1_.id == 9) {
          this.mc.displayGuiScreen(new GuiLoadingScreen());
        }

 

Edited by Shey
  • Upvote 1
  • Downvote 1

Share this post


Link to post
Share on other sites

Comment faire un écran de chargement ? Copiez collez ça là et là et paf ! Ca fait des Chocapics !

 

(Ce que je veux dire, c'est que un tutoriel c'est sensé expliquer ce que l'on fait, pas juste donner un code à copier coller)
(Et donner un énorme coder à copier coller plus l'expliquer en suite c'est pas super non plus)

  • Upvote 1

Share this post


Link to post
Share on other sites

Tu n'as pas tors, mais vu que l'autre tutoriel à était supprimé, je voulais pas que les gens s'embête à ré écrire. C'est pour cela que j'ai fais comme ça.

Share this post


Link to post
Share on other sites

Ce n'est pas une raison, un tutoriel ça se fait bien, pas à l’arrache, surtout dans le cas où on ne cite même pas l'auteur originel qui sans vouloir exagérer à quand même un peu marqué les esprits.

  • Upvote 1

Share this post


Link to post
Share on other sites

Cette écran est juste "esthétique" puisque, une fois la barre arrivé à 100%, il retourne vers GuiConnecting pour se connecter. Le mieux est de modifier la gui ^^

  • Upvote 1

Share this post


Link to post
Share on other sites

Personnellement je préfère le faire directement dans le GuiConnecting..

Car si tu le fais avec ton GuiLoadingScreen tu vas devoir passer par le GuiConnecting et c'est long.

Voila se que sa peux rendre en passant par le GuiConnecting directement :

 

IMG_19112016_203307.png

  • Upvote 3

Share this post


Link to post
Share on other sites
Le 24/11/2016 à 20:19, Bl4ckKing a dit :

Personnellement je préfère le faire directement dans le GuiConnecting..

Car si tu le fais avec ton GuiLoadingScreen tu vas devoir passer par le GuiConnecting et c'est long.

Voila se que sa peux rendre en passant par le GuiConnecting directement :

 

IMG_19112016_203307.png

Tu as en faite mis le code que propose le tutoriel dans ton GuiConnecting en faite ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×