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

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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值