私はMinecraftのために何かをコードしています...そしてGUIスケールに基づいて特定のテキストの場所を変更しようとしています...私の質問はX位置の変更に関連していますゲームグイスケールオフに基づいてテキストのために...私のコードは、次のとおりです。別の変数の値に基づいて静的整数を変更する
public int scale = Wrapper.mc.gameSettings.guiScale;
public static int XScale = 865;{
if(scale == 0){
int XScale = 405;
}else if(scale == 1){
int XScale = 1835;
}else if(scale == 2){
int XScale = 865;
}else if(scale == 3){
int XScale = 565;
}
}
私の問題は私のGUIスケールとは何かに関係なく、XScaleの変数は変更していないようだ、それがする必要があるということです静的でないときは静的なのでレンダリングされる個々のものは静的にしたい...静的でないものにする...そしてレンダリングクラスで静的にしたい...というアイデアを得る?
--- EDIT --- 私は@AntonHが役に立たなかったと言いました...結果は変わっていません...私はループの中に入れなければなりませんか?新しいコードは、次のとおりです。
public int scale = Wrapper.mc.gameSettings.guiScale;
public static int XScale = 865;{
if(scale == 0){
GUIIngameHook.XScale = 405;
}else if(scale == 1){
GUIIngameHook.XScale = 1835;
}else if(scale == 2){
GUIIngameHook.XScale = 865;
}else if(scale == 3){
GUIIngameHook.XScale = 565;
}
}
---スクリプト全体--- わからないこれは次のようになりますどのように役立つ...しかし、それはコンテキストを提供する必要があります。..
package me.zach.frostwave.UI;
public class GUIIngameHook {
public static void StartHud(){
renderClientName();
renderCoords();
renderFPS();
renderMods();
renderArrayList();
renderModLine();
}
public int scale = Wrapper.mc.gameSettings.guiScale;
public static int XScale = 865;{
if(scale == 0){
GUIIngameHook.XScale = 405;
}else if(scale == 1){
GUIIngameHook.XScale = 1835;
}else if(scale == 2){
GUIIngameHook.XScale = 865;
}else if(scale == 3){
GUIIngameHook.XScale = 565;
}
}
public static void renderClientName() {
Wrapper.fr.drawString("Frost Wave [MCV: 1.10, V: 0.05A]", 5, 5, 0x0011FF);
FrostWave.Frostwave.getGuiManager().renderPinned();
FrostWave.Frostwave.getGuiManager().update();
}
public static void renderFPS() {
Wrapper.fr.drawStringWithShadow("[FPS:" + Wrapper.mc.getDebugFPS() + "]", 5, 15, 0x7AA7FF);
FrostWave.Frostwave.getGuiManager().renderPinned();
FrostWave.Frostwave.getGuiManager().update();
}
public static void renderCoords() {
Wrapper.fr.drawStringWithShadow("[Coords: X: " + (int) Wrapper.mc.thePlayer.posX + " Y: " + (int) Wrapper.mc.thePlayer.posY + " Z: " + (int) Wrapper.mc.thePlayer.posZ + "]" , 5, 25, 0x10F0DA);
FrostWave.Frostwave.getGuiManager().renderPinned();
FrostWave.Frostwave.getGuiManager().update();
}
public static void renderMods() {
Wrapper.fr.drawString(" [Active Mods]" , XScale, 5, 0x5A47FF);
FrostWave.Frostwave.getGuiManager().renderPinned();
FrostWave.Frostwave.getGuiManager().update();
}
public static void renderModLine() {
Wrapper.fr.drawString("-------------" , XScale, 11, 0x5A47FF);
FrostWave.Frostwave.getGuiManager().renderPinned();
FrostWave.Frostwave.getGuiManager().update();
}
public static void renderArrayList() {
int yCount = 17;
for(Module m : FrostWave.manager.activeModules){
m.onRender();
if(m.getState() && !m.isCategory(Category.GUI)){
Wrapper.fr.drawString(m.getName(), XScale, yCount, m.getColor());
yCount = yCount + 10;
}
}
}
}
インスタンスイニシャライザを使用しているためです。それは本当にあなたが望んだものですか? – MeBigFatGuy
あなたがしているのは、新しいローカルintを宣言してそれらに値を代入してから、その変数をスコープのままにしておいてローカル変数を破棄することだけです。私はあなたが 'MyClass.XScale = 405;'などのようなことをすることができると想像します。 – AntonH
あなたの人生は私たちの手助けとなるでしょうか? –