当前位置:  软件>java软件

轻量级Java游戏开发包 LWJGL

    来源:    发布时间:2015-02-02

    本文导语:  LWJGL(Lightweight Java Game Library)它可以帮助Java程序员开发有着商业性质的游戏.LWJGL为开发者提供简单易用的API来访问OpenGL (Open Graphics Library)与OpenAL (Open Audio Library) 同也提供操作控制器(Gamepads, Steering wheel和操纵杆)的API. 示例代码: ...

LWJGL(Lightweight Java Game Library)它可以帮助Java程序员开发有着商业性质的游戏.LWJGL为开发者提供简单易用的API来访问OpenGL (Open Graphics Library)与OpenAL (Open Audio Library) 同也提供操作控制器(Gamepads, Steering wheel和操纵杆)的API.

示例代码:

import org.lwjgl.Sys;
import org.lwjgl.opengl.*;
import org.lwjgl.system.glfw.*;
 
import java.nio.ByteBuffer;
 
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.system.MemoryUtil.*;
import static org.lwjgl.system.glfw.GLFW.*;
 
public class HelloWorld {
 
    private long window;
 
    public void execute() {
        System.out.println("Hello LWJGL " + Sys.getVersion() + "!");
 
        try {
            init();
            loop();
            glfwDestroyWindow(window);
        } finally {
            glfwTerminate();
        }
    }
 
    private void init() {
        glfwSetErrorCallback(ErrorCallback.Util.getDefault());
 
        if ( glfwInit() != GL11.GL_TRUE )
            throw new IllegalStateException("Unable to initialize GLFW");
 
        glfwDefaultWindowHints();
        glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
        glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
 
        int WIDTH = 300;
        int HEIGHT = 300;
 
        window = glfwCreateWindow(WIDTH, HEIGHT, "Hello World!", NULL, NULL);
        if ( window == NULL )
            throw new RuntimeException("Failed to create the GLFW window");
 
        WindowCallback.set(window, new WindowCallbackAdapter() {
            @Override
            public void key(long window, int key, int scancode, int action, int mods) {
                if ( key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE )
                    glfwSetWindowShouldClose(window, GL_TRUE);
            }
        });
 
        ByteBuffer vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
        glfwSetWindowPos(
            window,
            (GLFWvidmode.width(vidmode) - WIDTH) / 2,
            (GLFWvidmode.height(vidmode) - HEIGHT) / 2
        );
 
        glfwMakeContextCurrent(window);
        glfwSwapInterval(1);
 
        glfwShowWindow(window);
    }
 
    private void loop() {
        GLContext.createFromCurrent();
 
        glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
        while ( glfwWindowShouldClose(window) == GL_FALSE ) {
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
            glfwSwapBuffers(window);
            glfwPollEvents();
        }
    }
 
    public static void main(String[] args) {
        new HelloWorld().execute();
    }
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 轻量级PHP开发框架 tangframework
  • 轻量级Android开发工具 Android Tools
  • 轻量级PHP开发框架 JJPHP
  • PHP轻量级开发框架 Stronger
  • 轻量级PHP开发框架 ThinkPHP
  • 基于SAE轻量级PHP开发框架 Mini2SAE
  • 如何搭建一个轻量级的供开发使用的Linux环境
  • 轻量级 Java Web 开发框架 Smart Framework
  • 轻量级的HTTP开发库 Unirest
  • 轻量级开发框架 Hasor
  • 轻量级软件框架 QP
  • 轻量级 NoSQL 数据库 WhiteDB
  • 轻量级的低功耗蓝牙协议栈 bcstack
  • 轻量级数据存储服务 LLServer
  • 轻量级 IRC 客户端 WeeChat
  • 轻量级字符串库 tstring
  • 轻量级音乐播放器 gejengel
  • 轻量级Linux发行版 boot2docker
  • 轻量级桌面环境 LXQt
  • 轻量级的 C++ 库 UCommon
  • 轻量级音乐播放器 gejengel iis7站长之家
  • 轻量级 VPN 软件 SigmaVPN
  • 轻量级SSH终端 Mosh
  • 轻量级phpMVC框架 MyfMVC
  • 轻量级的ORM库 Idiorm
  • 轻量级PHP框架 CXPHP
  • 轻量级的PHP框架 Thinp
  • 轻量级PHP框架 Scorpio
  • 轻量级PHP框架 MochiPHP
  • 轻量级字符串解析器 UAParser


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3