声明: 本博客文章原创均为个人原创 , 翻译类文章均为个人业余时间翻译,版权所有。转载请注明出处:http://www.wjfxgame.com,另外本人的CSDN博客:http://blog.csdn.net/ml3947
LWJGL,大家应该都听说过。这是Java界两大对OpenGL绑定的Java库之一。另外一个就是大名鼎鼎的JOGL了,以前曾是被SUN所支持的“官方”的OpenGL绑定库。
虽然本人目前工作转移到Unity3D,而使用Unity3D确实是很方便。但是,它毕竟是一个商业性质的引擎,很多方面不尽人意,无法满足自己的需求。而且由于封装度比较高,也不利于自己的学习。而由于本人从大学以来,使用Java居多,最近又在玩大名鼎鼎的Minecraft(使用LWJGL开发),所以决定使用LWJGL来看看。
LWJGL库使用了它自己的轻量级本地窗口,而且也有它自己的输入系统。音效使用的Java对OpenAL的绑定库。同时也提供对操作控制器等的API。
在LWJGL中,Display是一个很重要的类。它用来创建和控制渲染所有图形元素的本地窗口。在Display中,有三个方法需要被注意。
- create()
- update()
- destroy()
Display.create()这个方法用来创建本地窗口。我们需要设置它的DisplayMode,用来指定显示窗口的大小。DisplayMode需要在create之前设置。类似如下:
Display.setDisplayMode(new DisplayMode(width,height));
Display.create();
LWJGL使用双缓冲,任何图形都将被绘制到屏幕外的缓存里。当调用Display.update()的时候,将会交换缓存,然后让图形显示在窗口中。通常这个方法在渲染的循环中,每一帧的时候调用。
当LWJGL销毁的时候,将会调用Display.destroy()方法来进行清理和释放资源。
另外,当我们点击关闭本地窗口的按钮的时候,Display.isCloseRequested()方法将会返回true,所以我们通常将它使用在渲染循环中,如下所示:
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
public class DisplayExample {
public void start() {
try {
Display.setDisplayMode(new DisplayMode(800,600));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
// init OpenGL here
while (!Display.isCloseRequested()) {
// render OpenGL here
Display.update();
}
Display.destroy();
}
public static void main(String[] argv) {
DisplayExample displayExample = new DisplayExample();
displayExample.start();
}
}
运行将会显示一个800 x 600 的窗口。
分享到:
相关推荐
标题中的"ardor3d-lwjgl-0.7.jar.zip"是一个压缩文件,它包含了名为"ardor3d-lwjgl-0.7.jar"的Java Archive(JAR)文件。这个JAR文件是用于Java平台的软件包,通常用于封装多个类、资源和其他相关文件,便于分发和...
lwjgl 2.9.4 MC缺失包
为了使用LWJGL,开发者需要将其添加到项目的类路径中,并按照官方文档或教程进行配置。在编写代码时,通常会使用LWJGL提供的Java类来初始化OpenGL上下文,设置窗口,加载和绘制纹理,处理用户输入,以及播放音频等。...
实测可用
实测可用
实测可用
1. WebP格式详解: WebP采用了无损和有损两种压缩方式。无损模式类似于PNG,保留所有原始像素数据;有损模式则类似JPEG,通过丢弃部分数据来换取更高的压缩率。此外,WebP还支持透明(Alpha通道)和动画,使得它在...
《jnuit-lwjgl-0.6.zip与ant-git-tasks.zip:开源项目中的构建工具与Git集成》 在IT行业中,高效地管理项目代码、版本控制以及自动化构建是至关重要的环节。本文将深入探讨两个开源项目相关的压缩包文件——"jnuit-...
4. **音频和音效**:游戏可能包含音频效果,Java Media Framework (JMF) 或第三方库如LWJGL可以用来处理声音资源。 5. **存储和加载机制**:游戏状态和用户进度可能保存在本地,使用Java的文件I/O系统或序列化技术。...
lwjgl3-demos LWJGL 3演示套件 建造 ./mvnw package 覆盖主类 ./mvnw package -Dclass=opengl.UniformArrayDemo 跑步 java -jar target/lwjgl3-demos.jar 在Mac OS上,您需要指定-XstartOnFirstThread JVM参数,...
:./ src:./ lib / lwjgl / lwjgl.jar:./ lib / lwjgl / lwjgl-glfw.jar:./ lib / lwjgl / lwjgl- opengl.jar -d ./bin src / Game / Game.java 运行:java -cp ./bin:./lib/lwjgl/lwjgl.jar:./lib/lwjgl/lwjgl-...
在游戏开发领域,Java提供了丰富的类库,如JavaFX和lwjgl( Lightweight Java Game Library),这些库可以帮助开发者创建具有高质量图形和交互性的游戏。通过分析这些源代码,我们可以学习如何利用Java的面向对象...
Java的Swing和JavaFX库可以用于创建图形用户界面,而像LWJGL( Lightweight Java Game Library)这样的第三方库则可以帮助开发者进行游戏性能优化和多媒体处理。 【压缩包子文件的文件名称列表】:codefans.net 这...
1. **Java图像处理库**:在J2ME中,我们可以使用内置的`javax.microedition.lcdui.Image`类来处理图像。然而,这个类的功能相对有限,不支持复杂的图像操作,例如压缩。开发者可能需要引入第三方库,如lwjgl或pngj,...
lwjgl3-glfw-java 适用于 Android 的 LWJGL3 GLFW 存根 java 代码 关于这个项目 该项目存根并实施 GLFW 命令以足够运行 Minecraft 1.13+ 一些必需的属性 glfwstub.windowWidth : 设置窗口的宽度。 glfwstub.window...
LWJGL - Lightweight Java Game Library 3 LWJGL (https://www.lwjgl.org) is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL/Vulkan),...
4. `ardor3d-lwjgl-0.6-sources.jar`: Lightweight Java Game Library (LWJGL)绑定,允许Ardor3D利用LWJGL的硬件加速能力,提高性能。 5. `ardor3d-jogl-0.6-sources.jar`: Java OpenGL (JOGL)绑定,提供了对OpenGL...
lwjgl-卓越Graham Sellers Richard S. Wright Nicholas Haemel 使用 lwjgl 来自的样本。听力 设置库路径对于 IntelliJ IDEA 选择运行 > 编辑配置 > 应用程序设置 VM 选项 -Djava.library.path= target/natives 运行...
可以在 Android上启动Minecraft Java Edition的boardwalk启动器。这个代码是整理过的,从Ecpise转为AS构建,能够一键构建整个项目。包括Boardwalk、GL4ES、OpenAL_Soft模块
1. **主类(Main Class)**:这是程序的入口点,负责初始化游戏环境,创建游戏循环,以及处理用户输入。 2. **游戏循环(Game Loop)**:游戏的核心部分,它持续运行并更新游戏状态,处理输入,渲染画面,以及执行...