HAN1110
대표칭호 없음
HAN1110 9899e780ba984d89824a90ee8deb7cb2
이해도 | 프로그램 |
---|
제가 클라이언트를 만드는중 , 설정을 위해 어쩔수 없이 TabGUI 를 만들었죠.
위로가는 버튼 , 아래로 가는 버튼 , 왼쪽 오른쪽으로 가는 버튼을 눌르면 효과가 나게 해놨어요
이때 버튼은 -> 버튼 , <- 버튼 이런겁니다.
근데 그 버튼이 전혀 작동을 하지 않더라고요.
if (code == Keyboard.KEY_RIGHT) { expanded = true; System.out.println(Color.GREEN + "[MCMultiPlayer]" + Color.WHITE + ": KEY_RIGHT 누름"); }
이 코드를 눌러놓고 , KEY_RIGHT 을 눌러보았죠.
아무 효과도 없는겁니다(KEY RIGHT 은 -> 버튼일겁니다)
무슨 문제인가요?
추가로 오류가 없다고 나옵니다
전체 소스는
package Hack.Modules.Visual; import java.util.List; import org.lwjgl.input.Keyboard; import org.lwjgl.util.Color; (직접 만든 클래스들) import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.Gui; import optifine.IFileDownloadListener; public class TabGUI extends Module { public int currentTab, ModuleIndex; public boolean expanded; public TabGUI() { super("TabGUI", Keyboard.KEY_Z, Category.VISUAL); toggled = true; } public FontRenderer fr = mc.fontRendererObj; public void onEvent(Event e) { if (e instanceof EventRenderGUI) { Gui.drawRect(5, 30.5, 70, 30 + Module.Category.values().length * 16 + 1.5, 0x90000000); Gui.drawRect(7, 33 + currentTab * 16, 7 + 61, 33 + currentTab * 16 + 12, 0xff0090ff); int count = 0; for (Category c : Module.Category.values()) { fr.drawString(c.name, 11, 35 + count*16, -1); count++; } if (expanded) { List<Module> modules = Client.getModulesByCategory(Module.Category.values()[currentTab]); if (modules.size() == 0) { return; } Gui.drawRect(70, 30.5, 70 + 70, 30 + Module.Category.values().length * 16 + 1.5, 0x90000000); Gui.drawRect(72, 33 + ModuleIndex * 16, 7 + 61 + 70, 36 + ModuleIndex * 16 + 12, 0xff0090ff); count = 0; for (Module m : modules){ fr.drawString(m.name, 11 + 70, 35 + count*16, -1); count++; } } if (e instanceof EventKey) { int code = ((EventKey)e).code; List<Module> modules = Client.getModulesByCategory(Module.Category.values()[currentTab]); if (code == Keyboard.KEY_UP) { if (expanded = true) { if (ModuleIndex >= modules.size() - 1) { ModuleIndex = 0; } else ModuleIndex--; } else { if (currentTab <= 0) { currentTab = Module.Category.values().length - 1; } else currentTab--; } } if (code == Keyboard.KEY_DOWN) { if (expanded = true) { if (ModuleIndex >= modules.size() - 1) { ModuleIndex = 0; } else ModuleIndex++; } else { if (currentTab >= Module.Category.values().length -1) { currentTab = 0; } else currentTab++; } } if (code == Keyboard.KEY_RIGHT) { expanded = true; System.out.println(Color.GREEN + "[MCMultiPlayer]" + Color.WHITE + ": KEY_RIGHT 누름"); } if (code == Keyboard.KEY_LEFT) { expanded = false; } } } } }
허두
2021.09.24e instanceof EventKey 조건문 내부까지는 잘 진입이 되나요?
+ 게시글이 [질문 포럼(그외의 질문) -> 개발자 질문(Java)]로 이동되었으니 참고해주세요 :)
HAN1110
2021.09.24https://www.youtube.com/watch?v=8F9KuHkb5_U
해당 영상의 34:35초 부분을 보면 정상작동하는것을 볼수 있습니다.
다만 저는 , 위아래조차 작동을 안하네요.
HAN1110
2021.09.24예외가 발생한거같아 Try Catch 문을 이용해 에러가 일어날시 '에러' 라는 글자가 콘솔에 출력되게 해보았으나
키를 눌러보니 이건 제가 키를 잘 모르고 있거나 , 아니면 currentTab 의 문제등일거같아요
HAN1110
2021.09.24제가 바보였네요 ㅋㅋㅋㅋ
분명 영상에서는 저게 다른 조건문으로 나오는데
제 말은 EventRenderGUI 가 들어가는 조건문이랑 EventKey 가 들어가는 조건문이랑 다른곳에 넣어놔야하는데 그걸 같은곳에 넣어놨다닠ㅋㅋㅋㅋ
허두
2021.09.24무슨뜻인지 아직 이해는 못했지만..ㅋㅋㅋㅋㅋ
아무튼 해결되셨다니 다행입니다 :)