LWJGL(LightweightJavaGameLibrary)它可以帮助Java程序员开发有着商业性质的游戏.LWJGL为开发者提供简单易用的API来访问OpeGL(OpeGraphicsLibrary)与OpeAL(OpeAudioLibrary)同也提供操作控制器(Gamepads,Steerigwheel和操纵杆)的API.
示例代码:
import org.lwjgl.Sys;import org.lwjgl.opegl.*;import org.lwjgl.system.glfw.*; import java.io.ByteBuffer; import static org.lwjgl.opegl.GL11.*;import static org.lwjgl.system.MemoryUtil.*;import static org.lwjgl.system.glfw.GLFW.*; public class HelloWorld { private log widow; public void execute() { System.out.pritl("Hello LWJGL " + Sys.getVersio() + "!"); try { iit(); loop(); glfwDestroyWidow(widow); } fially { glfwTermiate(); } } private void iit() { glfwSetErrorCallback(ErrorCallback.Util.getDefault()); if ( glfwIit() != GL11.GL_TRUE ) throw ew IllegalStateExceptio("Uable to iitialize GLFW"); glfwDefaultWidowHits(); glfwWidowHit(GLFW_VISIBLE, GL_FALSE); glfwWidowHit(GLFW_RESIZABLE, GL_TRUE); it WIDTH = 300; it HEIGHT = 300; widow = glfwCreateWidow(WIDTH, HEIGHT, "Hello World!", NULL, NULL); if ( widow == NULL ) throw ew RutimeExceptio("Failed to create the GLFW widow"); WidowCallback.set(widow, ew WidowCallbackAdapter() { @Override public void key(log widow, it key, it scacode, it actio, it mods) { if ( key == GLFW_KEY_ESCAPE && actio == GLFW_RELEASE ) glfwSetWidowShouldClose(widow, GL_TRUE); } }); ByteBuffer vidmode = glfwGetVideoMode(glfwGetPrimaryMoitor()); glfwSetWidowPos( widow, (GLFWvidmode.width(vidmode) - WIDTH) / 2, (GLFWvidmode.height(vidmode) - HEIGHT) / 2 ); glfwMakeCotextCurret(widow); glfwSwapIterval(1); glfwShowWidow(widow); } private void loop() { GLCotext.createFromCurret(); glClearColor(1.0f, 0.0f, 0.0f, 0.0f); while ( glfwWidowShouldClose(widow) == GL_FALSE ) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glfwSwapBuffers(widow); glfwPollEvets(); } } public static void mai(Strig[] args) { ew HelloWorld().execute(); }}
评论