А может затем понанобиться, что-то ещё добавить, типа рендер игрока. Дополнительный эффект или ещё-то.Зачем изобретать велосипед второй раз?
@SideOnly(Side.CLIENT)
public class MainGUI extends GuiMainMenu {
private static final ResourceLocation texture = new ResourceLocation("textures/gui/achievement/achievement_icons.png");
public MainGUI() {
super();
}
@Override
public void initGui() {
int i = this.height / 4 + 48;
this.buttonList.clear();
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...
@SideOnly(Side.CLIENT)
public class MainGUI extends GuiMainMenu {
private static final ResourceLocation texture = new ResourceLocation("textures/gui/achievement/achievement_icons.png");
public MainGUI() {
super();
}
@Override
public void initGui() {
int i = this.height / 4 + 48;
this.buttonList.clear();
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])));
}
@Override
public void drawScreen(int mouseX, int mouseY, float parTick) {
GL11.glColor4f(1, 1, 1, 1);
drawDefaultBackground();
mc.renderEngine.bindTexture(texture);
drawTexturedModalRect(0, 0, 0, 0, mc.displayWidth, mc.displayHeight);
//---
int k;
for (k = 0; k < this.buttonList.size(); ++k)
((GuiButton)this.buttonList.get(k)).drawButton(this.mc, mouseX, mouseY);
for (k = 0; k < this.labelList.size(); ++k)
((GuiLabel)this.labelList.get(k)).func_146159_a(this.mc, mouseX, mouseY);
}
}
Если что 1.7.10 не 1.12.2, я видел темы 1.7.10 но к 1.12.2 совсем не подходитЯ на 1.7.10 ради теста сделал такое:
Java:@SideOnly(Side.CLIENT) public class MainGUI extends GuiMainMenu { private static final ResourceLocation texture = new ResourceLocation("textures/gui/achievement/achievement_icons.png"); public MainGUI() { super(); } @Override public void initGui() { int i = this.height / 4 + 48; this.buttonList.clear(); 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]))); } @Override public void drawScreen(int mouseX, int mouseY, float parTick) { GL11.glColor4f(1, 1, 1, 1); drawDefaultBackground(); mc.renderEngine.bindTexture(texture); drawTexturedModalRect(0, 0, 0, 0, mc.displayWidth, mc.displayHeight); //--- int k; for (k = 0; k < this.buttonList.size(); ++k) ((GuiButton)this.buttonList.get(k)).drawButton(this.mc, mouseX, mouseY); for (k = 0; k < this.labelList.size(); ++k) ((GuiLabel)this.labelList.get(k)).func_146159_a(this.mc, mouseX, mouseY); } }
Вот так выглядит главное меню:
Посмотреть вложение 4374
А может затем понанобиться, что-то ещё добавить, типа рендер игрока. Дополнительный эффект или ещё-то.Зачем изобретать велосипед второй раз?
@SideOnly(Side.CLIENT)
public class MainGUI extends GuiMainMenu {
private static final ResourceLocation texture = new ResourceLocation("textures/gui/achievement/achievement_icons.png");
public MainGUI() {
super();
}
@Override
public void initGui() {
int i = this.height / 4 + 48;
this.buttonList.clear();
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])));
}
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
GL11.glColor4f(1, 1, 1, 1);
drawDefaultBackground();
mc.renderEngine.bindTexture(texture);
drawTexturedModalRect(0, 0, 0, 0, mc.displayWidth, mc.displayHeight);
//---
int k;
for (int i = 0; i < this.buttonList.size(); ++i)
((GuiButton)this.buttonList.get(i)).drawButton(this.mc, mouseX, mouseY, partialTicks);
for (int j = 0; j < this.labelList.size(); ++j)
((GuiLabel)this.labelList.get(j)).drawLabel(this.mc, mouseX, mouseY);
}
}
Хм. а ты умеешь заинтересовать. Например сделать красивые анимации при наведении на кнопки, или полностью анимированное меню.Дополнительный эффект
Ещё вопрос, у меня 1 картинка, на 2 разделяется.А может затем понанобиться, что-то ещё добавить, типа рендер игрока. Дополнительный эффект или ещё-то.
---
Вот на 1.12.2 сделал:
Посмотреть вложение 4375Java:@SideOnly(Side.CLIENT) public class MainGUI extends GuiMainMenu { private static final ResourceLocation texture = new ResourceLocation("textures/gui/achievement/achievement_icons.png"); public MainGUI() { super(); } @Override public void initGui() { int i = this.height / 4 + 48; this.buttonList.clear(); 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]))); } @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { GL11.glColor4f(1, 1, 1, 1); drawDefaultBackground(); mc.renderEngine.bindTexture(texture); drawTexturedModalRect(0, 0, 0, 0, mc.displayWidth, mc.displayHeight); //--- int k; for (int i = 0; i < this.buttonList.size(); ++i) ((GuiButton)this.buttonList.get(i)).drawButton(this.mc, mouseX, mouseY, partialTicks); for (int j = 0; j < this.labelList.size(); ++j) ((GuiLabel)this.labelList.get(j)).drawLabel(this.mc, mouseX, mouseY); } }
Проверь ,правильно ли ты выставил координаты рабочей части картинкиЕщё вопрос, у меня 1 картинка, на 2 разделяется.
половина экрана и другая половина экрана по картинке
можешь пример дать, или что, ибо я хзАга. Хочешь типа растянуть, то типа тебе надо использовать свой метод (не параметры) наподобие drawTexturedModalRect.
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
GL11.glColor4f(1, 1, 1, 1);
drawDefaultBackground();
mc.renderEngine.bindTexture(texture);
drawTexturedModalRectCustom(0, 0, 0, 0, mc.displayWidth, mc.displayHeight);
//---
int k;
for (int i = 0; i < this.buttonList.size(); ++i)
((GuiButton)this.buttonList.get(i)).drawButton(this.mc, mouseX, mouseY, partialTicks);
for (int j = 0; j < this.labelList.size(); ++j)
((GuiLabel)this.labelList.get(j)).drawLabel(this.mc, mouseX, mouseY);
}
public void drawTexturedModalRectCustom(int x, int y, int textureX, int textureY, int width, int height) {
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferbuilder = tessellator.getBuffer();
bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
bufferbuilder.pos((double)(x + 0), (double)(y + height), (double)this.zLevel)
.tex(-1, 1).endVertex();
bufferbuilder.pos((double)(x + width), (double)(y + height), (double)this.zLevel)
.tex(1, 1).endVertex();
bufferbuilder.pos((double)(x + width), (double)(y + 0), (double)this.zLevel)
.tex(1, -1).endVertex();
bufferbuilder.pos((double)(x + 0), (double)(y + 0), (double)this.zLevel)
.tex(-1, -1).endVertex();
tessellator.draw();
}
Короче если на весь экран раскрыть, то оно размажется, а если в окне тогда нормАга. Хочешь типа растянуть, то типа тебе надо использовать свой метод (не параметры) наподобие drawTexturedModalRect.
Если я не ошибаюсь, то там используется GL11: glVertex3f и glTexCoord2f.открыть мод на кастом меню
Так что по поводу растяжки при полном экране?Если я не ошибаюсь, то там используется GL11: glVertex3f и glTexCoord2f.
Сделал с ними, можно сказать: не стало лучше.Так что по поводу растяжки при полном экране?