gpt4 book ai didi

Java lwjgl&slick2d 游戏 GUI 和 HUD?

转载 作者:太空宇宙 更新时间:2023-11-04 15:00:51 26 4
gpt4 key购买 nike

我对 Java 还很陌生,目前正在开发一个小游戏,只是为了测试我能用 Java 做什么。但是遇到了一个随机问题:我不知道如何制作 GUI(带有单人游戏、多人游戏、选项等的菜单)和 HUD(图形显示值 [生命、法力、经验...])已经说过:我正在使用库 jinput、lwjgl、lwjgl_util 和 Slick2D。我的窗口是通过 lwjgl 的 Display 类呈现的。这是我的 Main.class 代码:

public class Main 
{
public static int disWidth = 800;
public static int disHeight =600;


public static void main(String[] args)
{
initDisplay();
initGL();
initGame();


gameLoop();
// initGui();


cleanUp();
}

private static void initGame()
{
Game.game = new Game();
}

private static void getInput()
{
Game.game.getInput();
}

private static void initGui()
{
//Render the gui
}

private static void update()
{
Game.game.update();
// GUI.gui.update() or something
}

private static void render()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();


Game.game.render();


Display.update();
Display.sync(60);
}

private static void initGL()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, Display.getWidth(), 0, Display.getHeight(), -1, 1);
glMatrixMode(GL_MODELVIEW);

glDisable(GL_DEPTH_TEST);

glClearColor(0, 0, 0, 0);
}

private static void gameLoop()
{
Time.init();

int frames = 0;
long lastTime = System.nanoTime();
long totalTime = 0;

while(!Display.isCloseRequested())
{
long now = System.nanoTime();
long passed = now - lastTime;
lastTime = now;
totalTime += passed;

if(totalTime >= 1000000000)
{
System.out.println(frames);
totalTime = 0;
frames = 0;
}

Time.update();
getInput();
update();
render();
frames++;
}



}

private static void cleanUp()
{
Display.destroy();
Keyboard.destroy();
}


private static void initDisplay()
{
try
{
Display.setDisplayMode(new DisplayMode(disWidth, disHeight));
Display.create();
Keyboard.create();
}
catch (LWJGLException ex)
{
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}

}
}

最佳答案

您应该尝试检查 TWL。我认为这是在 LWJGL 环境中实现 GUI 的方法之一,尽管该方法相当困难(可能是由于 xml 部分)并且没有很好的文档记录(在我看来)

您还可以尝试使用函数设置其父级,将 LWJGL 的主 Display 类放入标准 Swing Canvas 中。

我自己需要一个 GUI,并且我正在学习 TWL

关于Java lwjgl&slick2d 游戏 GUI 和 HUD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22590662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com