質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Q&A

解決済

1回答

194閲覧

JOGLでループ文を書く方法は有りますか?。

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

0グッド

0クリップ

投稿2019/04/20 08:27

編集2019/04/27 02:39

最近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)

何故ループ文を定義したいのかについて

要するに前置きでも言った桃李ゲームプログラムを書きたいので、ループ文を記述したり(定義したい)という事です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/04/20 09:54

何をどうしたくてループを書きたいのでしょうか?ライブラリ利用とはいえJavaなのでJavaの文法にのっとって書けば良いとは思うのですが
退会済みユーザー

退会済みユーザー

2019/04/27 02:34

言え、その~上記の質問の前置き道理、ゲーム開発したいのでループ文が書きたいというだけの事です。 後、このライブラリはウィンドウ描画クラスと似た感じの物なので、少し特殊な定義と成っております。 そして返信ありがととう御座います。
guest

回答1

0

ベストアンサー

一応あれからウェブサイト上で調べまくった結果、rehape関数にループ文を直接定義すればいいという事が
発覚しました、申し訳ありません。

なかなかウェブサイト上でも見つからなかった物でつい質問してしまいました・・。
結局最終的にはJOGLゲームプログラミング方法的なキーワード関連の言葉から飛んで、
JOGLマルチスレッドというキーワードで調べたりなんだかんだして居たら見つかりました!!(´ω`)

にしても全く見つから無かったので、大分苦労しました・・・。

ですが、実を言うとまだ問題は有り、OpenGL全体検索掛けると有るのですが、JOGLには無いものが一つ
有りまして、実を言うとJOGLライブラリは文字を描画する定義に関する僕でも理解出来る様な情報が少ない
という事なんですよね・・・なので、タイトル画面に文字を描画したいと思っている僕からしたら、
かなり痛い事なのです。。

なので、また今度どうしても分からなかったり苦戦しまくった場合は質問させて頂く事と成ると思うので
その時にまたアドバイスよろしくお願いします!。

投稿2019/04/27 02:49

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問