最近JavaでOepnGLライブラリを使い始めまして、そこで、ゲームを開発しようと思っていた次第なのですが、
どの様にすればループ文を掛けるのかが、分からなくて困惑しています。
よろしければその方法を教えて頂けませんか?。
ちなみに、現在記述途中のソースコードはこちらです。
Java
1import com.jogamp.opengl.GL2; 2import com.jogamp.opengl.GLAnimatorControl; 3import com.jogamp.opengl.GLAutoDrawable; 4import com.jogamp.opengl.GLCapabilities; 5import com.jogamp.opengl.GLEventListener; 6import com.jogamp.opengl.GLProfile; 7import com.jogamp.opengl.awt.GLCanvas; 8import javax.swing.*; 9 10import java.awt.event.KeyListener; 11import java.awt.event.KeyEvent; 12 13public class Main extends JFrame implements KeyListener, Runnable, GLEventListener { 14 15 private static final long serialVersionUID = 1L; 16 public static boolean Game = true; 17 18 public static void main(String[] args){ 19 20 Main mt = new Main(); 21 Thread thread = new Thread(mt); 22 thread.start(); 23 24 //getting the capabilities object of GL2 profile 25 final GLProfile profile = GLProfile.get(GLProfile.GL2); 26 GLCapabilities capabilities = new GLCapabilities(profile); 27 28 // The canvas 29 final GLCanvas glcanvas = new GLCanvas(capabilities); 30 31 Main b = new Main(); 32 glcanvas.addGLEventListener(b); 33 glcanvas.setSize(800, 700); 34 //creating frame 35 final JFrame frame = new JFrame (" Shooting game"); 36 //adding canvas to it 37 frame.getContentPane().add(glcanvas); 38 frame.setSize(frame.getContentPane().getPreferredSize()); 39 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 40 //ImageIcon icon = new ImageIcon ("./icon.png") ; 41 //frame.setIconImage(icon.getImage()); 42 frame.setLocationRelativeTo(null); 43 frame.setVisible(true); 44 } 45 46 47 48 @Override 49 public void run(){ 50 /* 51 while(Game ==true){ 52 addKeyListener(this); 53 } 54 */ 55 } 56 57 /** 初期処理 */ 58 @Override 59 public void init(GLAutoDrawable drawable) { 60 // 画面を初期化する 61 GL2 g = drawable.getGL().getGL2(); 62 // black background(黒で初期化) 63 g.glClearColor(0, 0, 0, 0); 64 } 65 66 /** 67 * Draw 2D graphics "H" 68 * 2次元描画で"H”を描く 69 */ 70 @Override 71 public void display(GLAutoDrawable drawable) { 72 73 // 表示 start GL(GL2 or GL2) 74 GL2 g = drawable.getGL().getGL2(); 75 g.glClear(GL2.GL_COLOR_BUFFER_BIT); 76 // draw in red 77 g.glColor3d(1, 0, 0); 78 // draw "H" 79 g.glBegin(GL2.GL_LINES); 80 // raw line 81 g.glVertex2d(-0.8, 0.8); 82 g.glVertex2d(-0.8, -0.8); 83 g.glVertex2d(-0.8, 0.0); 84 g.glVertex2d(-0.4, 0.0); 85 g.glVertex2d(-0.4, 0.8); 86 g.glVertex2d(-0.4, -0.8); 87 88 // stop draw 89 g.glEnd(); 90 } 91 92 @Override 93 public void dispose(GLAutoDrawable arg0) { 94 //method body 95 } 96 97 @Override 98 public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3, int arg4) { 99 // method body 100 } 101 102 103 @Override 104 public void keyTyped(KeyEvent e) { 105 int key = 0; 106 int keycode = e.getKeyCode(); 107 if (key == KeyEvent.VK_W){ 108 System.out.println("Wキーが押された"); 109 } 110 } 111 112 @Override 113 public void keyPressed(KeyEvent e) { 114 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 115 } 116 117 @Override 118 public void keyReleased(KeyEvent e) { 119 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 120 } 121}
開発環境
OS:Windows10 OpenGLライブラリ:GL2 (JOGL)
何故ループ文を定義したいのかについて
要するに前置きでも言った桃李ゲームプログラムを書きたいので、ループ文を記述したり(定義したい)という事です。
回答1件
あなたの回答
tips
プレビュー