64位和32位机的Java OpenGL配置

Java OpenGL使用的是jogl的库,我因为课程要求就想使用openGL做个游戏出来。这里简单分享一下配置方法。以下会给出64位机和32位机的配置。
资源下载地址,很便宜1个积分
http://download.csdn.net/detail/charchunchiu/9721236
或者直接加我微信搜v17284我免费发你。。。。
jogl配置包括三部分

第一步:
将下载的文件解压到电脑任意目录
这里写图片描述
然后可以看到有两个jar包,一个zip包和一个dll挂钩文件file。这里需要在电脑环境变量里面设置一下path:
这里写图片描述
需要在变量值后面加上:
;D:\Program Files\JavaOpenGL\x64\dll;
(注意不要漏掉分号,然后路径是你自己解压的ddl目录,如果你是32位的话就用32位那个文件里面的lib目录)

这样就完成了jogl包到硬件的调用(其实我不是很懂这个原理)
打开你的eclipse,新建项目然后新建一个项目,然后按add external jars,将两个jar包和zip包添加进去:
这里写图片描述
你也可以自己新建一个user library然后添加进去,这一样的。
然后ctrl+shift+T,输入GLEventListener,再点击attach,选择这个zip文件,以后就可以看到源码了。(这句话是转自
http://blog.csdn.net/sidihuo/article/details/44034465
然后输入代码测试:
代码转自(http://blog.csdn.net/sidihuo/article/details/44034465

import javax.media.opengl.GLCapabilities;  

public class HelloWorld {  

    public static void main(final String args[]) {  
        try {  
            System.loadLibrary("jogl");  
            System.out.println("Hello World!(Thenativelibrariesareinstalled.)");  
            final GLCapabilities caps = new GLCapabilities();  
            System.out.println("Hello JOGL!(Thejarappearstobeavailable.)");  
        } catch (final Exception e) {  
            System.out.println(e);  
        }  
    }  
}  

然后按照上面的测试代码测试。
实例源代码:http://blog.csdn.net/xxyy888/article/details/8211380

“`
package test1.opengl;

import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.HeadlessException;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLEventListener;

public class Opengl_Bounce extends Frame implements GLEventListener, Runnable {

float x1 = 100.0f; // 矩型的X坐标  

float y1 = 150.0f; // 矩型的y坐标  

long rsize = 50; // 为矩型宽度预留的位置或距离  

float xstep = 1.0f; // 沿X每步位移的距离,当然可以改大些  

float ystep = 1.0f; // 沿Y每步位移的距离  

float windowWidth; // 这里不是指窗体边框的的宽,而是视觉投影的右端  

float windowHeight; // 这里不是指窗体边框的的高,而是视觉投影的顶端  

GL gl; // OPENGL的主接口  

GLCanvas glcanvas; // 类似java.awt.Canvas, GLCanvas主要用来显示各种OPENGL的效果  

GLCapabilities capabilities; // 指定了一套OpenGL的功能:渲染内容必须支持,如色彩深度,以及立体是否已启用。  

Thread myThread = new Thread(this);  

public Opengl_Bounce() throws HeadlessException {  

    capabilities = new GLCapabilities(); // 实例化capabilities  

    glcanvas = new GLCanvas(capabilities); // 实例化glcanvas  

    glcanvas.addGLEventListener(this); // 给glcanvas添加GL事件处理  

    this.add(glcanvas, BorderLayout.CENTER); // 给窗体添加一个Component:glcanvas  

    addWindowListener(new WindowAdapter() { // 给窗体添加关闭事件  

        @Override  
        public void windowClosing(final WindowEvent e) {  

            System.exit(0);  

        }  

    });  

    myThread.start(); // 主线程开始  

}  

public static void main(final String[] args) {  

    final Opengl_Bounce f = new Opengl_Bounce();  

    f.setTitle("移动的矩型");  

    f.setSize(800, 600);  

    f.setVisible(true);  

}  

@Override  
public void display(final GLAutoDrawable drawable) {  

    if (x1 > windowWidth - rsize || x1 < 0) {  

        xstep = -xstep;  

    }  

    if (y1 > windowHeight - rsize || y1 < 0) {  

        ystep = -ystep;  

    }  

    if (x1 > windowWidth - rsize) {  

        x1 = windowWidth - rsize;  

    }  

    if (y1 > windowHeight - rsize) {  

        y1 = windowHeight - rsize;  

    }  

    x1 += xstep;  

    y1 += ystep;  

    gl.glClear(GL.GL_COLOR_BUFFER_BIT);  

    gl.glColor3f(1.0f, 0.0f, 0.0f);  

    gl.glRectf(x1, y1, x1 + rsize, y1 + rsize);  

    gl.glFlush();  

    glcanvas.swapBuffers();  

}  

@Override  
public void displayChanged(final GLAutoDrawable drawable, final boolean arg1,  

final boolean arg2) {  

}  

@Override  
public void init(final GLAutoDrawable drawable) {  

    gl = drawable.getGL();  

    gl.glClearColor(0.0f, 0.0f, 1.0f, 1.0f);  

}  

@Override  
public void reshape(final GLAutoDrawable drawable, final int x, final int y, final int w, int h) {  

    if (h == 0) {  

        h = 1;  

    }  

    gl.glViewport(0, 0, w, h);  

    gl.glMatrixMode(GL.GL_PROJECTION);  

    gl.glLoadIdentity();  

    if (w <= h) {  

        windowWidth = 250.0f;  

        windowHeight = 250.0f * h / w;  

    } else {  

        windowWidth = 250.0f * w / h;  

        windowHeight = 250.0f;  

    }  

    gl.glOrtho(0.0f, windowWidth, 0.0f, windowHeight, 1.0f, -1.0f);  

    gl.glMatrixMode(GL.GL_MODELVIEW);  

    gl.glLoadIdentity();  

}  

@Override  
public void run() {  

    while (true) {  

        glcanvas.display(); // 主线程不停调用display()  

        try {  

            myThread.sleep(20); // 每执行完一次休息20毫秒  

        } catch (final InterruptedException ex) {  

            ex.printStackTrace();  

        }  

    }  

}  

} “`
结果像这样:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值