`

LWJGL教程--- 1.The Display

 
阅读更多

声明: 本博客文章原创均为个人原创 , 翻译类文章均为个人业余时间翻译,版权所有。转载请注明出处: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中,有三个方法需要被注意。

  1. create()
  2. update()
  3. 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 的窗口。

转载请注明出处:http://blog.csdn.net/ml3947

分享到:
评论

相关推荐

    ardor3d-lwjgl-0.7.jar.zip

    标题中的"ardor3d-lwjgl-0.7.jar.zip"是一个压缩文件,它包含了名为"ardor3d-lwjgl-0.7.jar"的Java Archive(JAR)文件。这个JAR文件是用于Java平台的软件包,通常用于封装多个类、资源和其他相关文件,便于分发和...

    lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar

    lwjgl 2.9.4 MC缺失包

    LWJGL整合包.rar

    为了使用LWJGL,开发者需要将其添加到项目的类路径中,并按照官方文档或教程进行配置。在编写代码时,通常会使用LWJGL提供的Java类来初始化OpenGL上下文,设置窗口,加载和绘制纹理,处理用户输入,以及播放音频等。...

    gdx-backend-lwjgl-sources.jar

    实测可用

    gdx-backend-lwjgl-natives.jar

    实测可用

    gdx-backend-lwjgl-cut.jar

    实测可用

    libwebp-0.4.2-windows-x64.zip

    1. WebP格式详解: WebP采用了无损和有损两种压缩方式。无损模式类似于PNG,保留所有原始像素数据;有损模式则类似JPEG,通过丢弃部分数据来换取更高的压缩率。此外,WebP还支持透明(Alpha通道)和动画,使得它在...

    jnuit-lwjgl-0.6.zip

    《jnuit-lwjgl-0.6.zip与ant-git-tasks.zip:开源项目中的构建工具与Git集成》 在IT行业中,高效地管理项目代码、版本控制以及自动化构建是至关重要的环节。本文将深入探讨两个开源项目相关的压缩包文件——"jnuit-...

    puzzle-game-java.2430.zip_made

    4. **音频和音效**:游戏可能包含音频效果,Java Media Framework (JMF) 或第三方库如LWJGL可以用来处理声音资源。 5. **存储和加载机制**:游戏状态和用户进度可能保存在本地,使用Java的文件I/O系统或序列化技术。...

    lwjgl3-demos:LWJGL 3演示套件

    lwjgl3-demos LWJGL 3演示套件 建造 ./mvnw package 覆盖主类 ./mvnw package -Dclass=opengl.UniformArrayDemo 跑步 java -jar target/lwjgl3-demos.jar 在Mac OS上,您需要指定-XstartOnFirstThread JVM参数,...

    Projector:基本的3D世界沙盒游戏

    :./ 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-...

    Classic-java-game-source-code.zip_JAVA小游戏

    在游戏开发领域,Java提供了丰富的类库,如JavaFX和lwjgl( Lightweight Java Game Library),这些库可以帮助开发者创建具有高质量图形和交互性的游戏。通过分析这些源代码,我们可以学习如何利用Java的面向对象...

    基于Java的实例源码-游戏沙丘城堡源代码.zip

    Java的Swing和JavaFX库可以用于创建图形用户界面,而像LWJGL( Lightweight Java Game Library)这样的第三方库则可以帮助开发者进行游戏性能优化和多媒体处理。 【压缩包子文件的文件名称列表】:codefans.net 这...

    基于Java的实例开发源码-J2ME优化压缩PNG文件.zip

    1. **Java图像处理库**:在J2ME中,我们可以使用内置的`javax.microedition.lcdui.Image`类来处理图像。然而,这个类的功能相对有限,不支持复杂的图像操作,例如压缩。开发者可能需要引入第三方库,如lwjgl或pngj,...

    lwjgl3-glfw-java:在 Java 中 LWJGL3 GLFW 的虚拟实现,用于在 PojavLauncher v3 中运行 Minecraft 1.13+ 和 LWJGLX

    lwjgl3-glfw-java 适用于 Android 的 LWJGL3 GLFW 存根 java 代码 关于这个项目 该项目存根并实施 GLFW 命令以足够运行 Minecraft 1.13+ 一些必需的属性 glfwstub.windowWidth : 设置窗口的宽度。 glfwstub.window...

    Android代码-lwjgl3

    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),...

    ardor3d Javascript 3D toolkits

    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-superbible:使用 lwjgl 的 superible 样本

    lwjgl-卓越Graham Sellers Richard S. Wright Nicholas Haemel 使用 lwjgl 来自的样本。听力 设置库路径对于 IntelliJ IDEA 选择运行 > 编辑配置 > 应用程序设置 VM 选项 -Djava.library.path= target/natives 运行...

    boardwalk2-lwjgl3-master_lwjgl3_Soft!_boardwalk_beneathtfp_andro

    可以在 Android上启动Minecraft Java Edition的boardwalk启动器。这个代码是整理过的,从Ecpise转为AS构建,能够一键构建整个项目。包括Boardwalk、GL4ES、OpenAL_Soft模块

    基于Java的实例开发源码-J2me月光战机游戏源码.zip

    1. **主类(Main Class)**:这是程序的入口点,负责初始化游戏环境,创建游戏循环,以及处理用户输入。 2. **游戏循环(Game Loop)**:游戏的核心部分,它持续运行并更新游戏状态,处理输入,渲染画面,以及执行...

Global site tag (gtag.js) - Google Analytics