OpenlGL游戏编程-简单的机器人制作(一),openlgl机器人
分享于 点击 41113 次 点评:188
OpenlGL游戏编程-简单的机器人制作(一),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.实现后如图所示:
相关文章
- 暂无相关文章
用户点评