gpt4 book ai didi

java - LWJGL键盘输入没有调用在显示器上绘图的方法?

转载 作者:行者123 更新时间:2023-12-01 12:42:06 24 4
gpt4 key购买 nike

我使用的是 LWJGL,问题是,在键盘输入部分调用 addSqaure() 方法后,我无法在屏幕上绘制正方形。我将代码从 addSquare() 方法内部移至更新部分,只是为了确保它确实有效,而且确实有效。这是特定于键盘方法的。当我按 SPACE 时,它只会打印预期的文本。

这是我的代码。

import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import static org.lwjgl.opengl.GL11.*;

public class MainClass {

public static void initDisplay()
{
try
{
Display.setDisplayMode(new DisplayMode(800, 600));
Display.setTitle("sqaure addddder");
Display.create();
}
catch(LWJGLException e)
{
e.printStackTrace();
System.exit(0);
}
}

public static void initGL()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 800, 0, 600, 1, -1);
glMatrixMode(GL_MODELVIEW);

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

public static void gameLoop()
{
while(!Display.isCloseRequested())
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

getInput();

Display.update();
}
}

public static void getInput()
{
while(Keyboard.next())
{
if(Keyboard.getEventKeyState())
{
if(Keyboard.getEventKey() == Keyboard.KEY_SPACE)
{
addSquare(0.3f, 0.4f, 0.7f, 1f);
System.out.println("Square was addedd at point.");
}else{
System.out.println("Square was not added.");
}
}
}
}

public static void addSquare(float red, float green, float blue, float alpha)
{
glColor4f(red, green, blue, alpha);

glBegin(GL_QUADS);
glVertex2f(200, 200);
glVertex2f(300 ,200);
glVertex2f(300, 300);
glVertex2f(200, 300);
glEnd();
}

public static void callJanitor()
{
Display.destroy();
System.exit(0);
}

public static void main(String[] args) {

initDisplay();
initGL();
gameLoop();
callJanitor();
}
}

绘制正方形有什么问题?

最佳答案

你的addSquare方法实际上并没有添加一个正方形,它只绘制了一个正方形。每次按空格键仅显示一帧,因为您要检查的关键事件仅在首次按空格键时发生一次。如果将 getInput 方法的主体更改为:

if(Keyboard.isKeyDown(Keyboard.KEY_SPACE)){
addSquare(0.3f, 0.4f, 0.7f, 1f);
}

按住空格键的每一帧都会绘制一个正方形。

关于java - LWJGL键盘输入没有调用在显示器上绘图的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25003553/

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