OpenlGL游戏编程-简单的机器人制作(一)

来源:互联网 发布:淘宝靠谱ipad二手店铺 编辑:程序博客网 时间:2024/05/22 04:36

OpenlGL游戏编程-简单的机器人制作(一)


!注意本教程是基于java的,我会在这里从创建java项目一步一步的写。(java版本为java8)


开场

首先创建一个GameGLEventListener来实现GLEventListener接口,在java里,想要实现一个接口,需要知道implements这个关键字,定义如下

package main;import com.jogamp.opengl.GLAutoDrawable;import com.jogamp.opengl.GLEventListener;public class GameGLEventListener implements GLEventListener{    @Override    public void init(GLAutoDrawable glad) {    }    @Override    public void dispose(GLAutoDrawable glad) {    }    @Override    public void display(GLAutoDrawable glad) {    }    @Override    public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) {    }}

接着让我们创建一个基于swing编程的窗口吧,不懂swing也没有关系,就是一个java的类库。
1.我们首先要知道JFrame类,这是一个窗口类,我们定义一个他的派生类(子类),我们把他取名为GameJFrame,在java里,想要继承一个类,需要知道extends关键字,具体定义如下:

package main;import javax.swing.JFrame;public class GameJFrame extends JFrame{}

2.那怎么实现swing和opengl结合呢?我们要知道实现opengl需要有GLProfile,GLCapabilities,GLJPanel(JPanel的子类),那我们需要把GameFrame类的定义改成如下形式:

package main;import com.jogamp.opengl.GLCapabilities;import com.jogamp.opengl.GLProfile;import com.jogamp.opengl.awt.GLJPanel;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;public class GameJFrame extends JFrame {    GLProfile profile;    GLCapabilities capabilities;    GLJPanel panel;    GameGLEventListener gameGLEventListener;    public GameJFrame(String name,int x, int y,int width,int height){        this.setTitle(name);        this.setLayout(null);        this.setBounds(x, y, width, height);        profile = GLProfile.get(GLProfile.GL2);        capabilities = new GLCapabilities(profile);        gameGLEventListener = new GameGLEventListener();        panel = new GLJPanel(capabilities);        panel.addGLEventListener(gameGLEventListener);        this.setContentPane(panel);        this.addWindowListener(new WindowAdapter(){            @Override            public void windowClosing(WindowEvent e){                System.exit(0);            }        });    }    public void start(){        this.setVisible(true);    }}

3.主函数实现,代码如下

package main;public class Main {    public static void main(String[] args) {        GameJFrame frame = new GameJFrame("Opengl游戏编程",0,0,500,500);        frame.start();    }}

收场

4.实现后如图所示:
正常运行后

0 0
原创粉丝点击