- 48
- 1
- 4
Вопрос есть на форме уже, задан ни один миллион раз, также ни один миллион раз на него ответил tox1cozZ в формате:
И пока я шёл в код, сразу мысли крысиные такие полезли "А чо за вообще скейл? Откуда его брать? Не могу же я статическое значение использовать, которое сам бахну из головы, этот скейл явно где-то валяется в зависимости от размеров интерфейса он, наверно, меняется в этом где-то".
Но эти мысли я отложил на потом и начал переделывать свой код по примерам, в которых всё решено и картинка перестала летать по монитору. Были перепробованы все танцы с бубнами, все возможные джл11, пуши, поп матриксы, скейлы, транслейты, логирование значений в консоль для понимания как меняется длина и ширина в зависимости разрешения, и банальное деление на скейл.
Но ничего не меняет ситуацию... Где-то один разок у меня получилось, текстура не летала по экрану при изменении интерфейса, но когда я заходил в настройки вся панель у меня висела вверх ногами, как и инвентарь и всё это было уменьшено раза в 4.
Некоторые предлагают вообще занимательные решения, по типу
Я остановился на вот таком коде, это самый простой что я использовал, взял его из темы, где у паренька всё работает, но у меня нихрена)
Вопрос, как чинить?
И что за скейл то всё-таки брать?)
Ну раз просто делить на скейл, вроде ничего сложного, поехали, - подумал я и пошёл в код.координаты нужно просто делить на скейл
И пока я шёл в код, сразу мысли крысиные такие полезли "А чо за вообще скейл? Откуда его брать? Не могу же я статическое значение использовать, которое сам бахну из головы, этот скейл явно где-то валяется в зависимости от размеров интерфейса он, наверно, меняется в этом где-то".
Но эти мысли я отложил на потом и начал переделывать свой код по примерам, в которых всё решено и картинка перестала летать по монитору. Были перепробованы все танцы с бубнами, все возможные джл11, пуши, поп матриксы, скейлы, транслейты, логирование значений в консоль для понимания как меняется длина и ширина в зависимости разрешения, и банальное деление на скейл.
Но ничего не меняет ситуацию... Где-то один разок у меня получилось, текстура не летала по экрану при изменении интерфейса, но когда я заходил в настройки вся панель у меня висела вверх ногами, как и инвентарь и всё это было уменьшено раза в 4.
Некоторые предлагают вообще занимательные решения, по типу
width + x * scale / scale
- и о, господи, они сообщают что всё равно всё работает)Я остановился на вот таком коде, это самый простой что я использовал, взял его из темы, где у паренька всё работает, но у меня нихрена)
Вопрос, как чинить?
И что за скейл то всё-таки брать?)
Scale:
float scale = 0.7f;
GL11.glPushMatrix();
minecraft.getTextureManager().bindTexture(hudBar);
GL11.glScalef(scale, scale, 1F);
minecraft.ingameGUI.drawTexturedModalRect((int)((width / scale) - x), (int)((height / scale) - y), uPos, vPos, sizeWidth, sizeHeight);
GL11.glPopMatrix();
Event:
@SideOnly(Side.CLIENT)
@SubscribeEvent
public static void eventRenderOverlay(RenderGameOverlayEvent.Post event) {
int width = event.getResolution().getScaledWidth();
int height = event.getResolution().getScaledHeight();
if (event.getType() == RenderGameOverlayEvent.ElementType.ALL) {
OverlayHudBarRender.renderHealthBar(width, height);
}
}
Последнее редактирование: