問題タブ [lwjgl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 移動/サイズ変更中にopenglウィンドウがフリーズする
LWJGL を使用してゲームを開発しています。ウィンドウを移動している間 (将来的にサイズ変更コードを追加する予定です)、レンダリング ループがフリーズします。移動中も何らかの形で走り続けてほしい。LWJGL には glutMainLoop は含まれていません。
Display は Java ではなく OpenGL に属します。
関連コード:
java - LWJGL - 四元数と変換行列を使用して 6DOF カメラで「ロール」を実装する際の問題
この問題に数週間費やしましたが、適切な解決策が見つからないようで、アドバイスが必要です.
LWJGL/Java を使用して Camera クラスの作成に取り組んでおり、クォータニオンを使用してベアリング (ヨー)、ピッチ、ロールの回転を処理しています。このカメラが 3D 空間で 6 度の動きすべてを処理し、ロールすることを望みます。ベアリング、ピッチ、ロールはすべてクォータニオンです。それらを「変更」四元数に乗算し、そこから変換行列を作成します。それを float バッファーに入れ、モデルビュー マトリックスに回転マトリックスを含むバッファーを掛けます。
ベアリングとピッチの回転は正しく機能しますが、ロールを実装すると問題が発生します。主にZ軸周りの回転(ローリング)がうまくいかないようです。カメラを「回転」させると、ローカル カメラの方向軸ではなく、グローバル Z 軸を中心に回転しているように見えます。通常、クォータニオンを乗算する順序に応じて、3 つのうち 2 つを機能させることができますが、それらを一緒に機能させることはできません。
それらはすべて独立して動作するため、それらを組み合わせて回転行列を構築する方向方法に何か問題があると思います。クラス全体を貼り付けるのに問題があるため、回転に関連するメソッドと宣言を次に示します。
...
Vector3f、Quaternion、Matrix4f はすべて LWJGL クラスであり、カスタムメイドではありません。
私の質問は、ベアリング、ピッチ、ロールを表す 3 つのクォータニオンが与えられた場合、ModelView マトリックスを変更してこれらの回転を正確に表すにはどうすればよいですか?
編集:これは非常に近いと思います。RiverC のコメントの Gist リンクを参照してください。非常に多くの角度で回転した後、回転すると通常の状態に戻る前に、ビューが大きくジャンプします。要点はそこにありますが、まだ少しずれています。
opengl - OpenGLで背景をタイリングする
これは比較的単純な質問だと思います。これは、私がいつも頭を悩ませてきた1つのことです。
「無限に」並べて表示したい512x512の背景があります。探し回ったのですが、なかなか見つからないので、ここに来ると思いました。とにかく、ここにあります:
背景http://dl.dropbox.com/u/5003139/hud/stars_far.png
だから、あなたはそれを持っています。2D平面上のどこにでも移動できる船のスプライトがあります。これはトップダウンゲームです。任意のサイズのウィンドウのすべてのピクセルをカバーするように、この背景をどのようにレンダリングしますか?
java - マウスの動きに基づいてクォータニオンを回転させる(OpenGLおよびJava)
私はOpenGL(具体的にはLWJGLバインディング)を使用してJavaでゲームを書いています。カメラを含む各エンティティには、回転を表すクォータニオンがあります。クォータニオンを現在のOpenGLマトリックスに適用する方法を理解しましたが、すべてが正常に回転します。私が抱えている問題は、カメラをマウスで回転させることです。
現在、フレームごとに、ゲームはマウスが1つの軸上で移動した量を取得し、その量をカメラの回転のためにクォータニオンに適用します。クォータニオンを回転させるコードは次のとおりです。問題が発生する場所だと思うので、投稿します(ただし、この種のことについては常に間違っています)。
このメソッドは、X軸を中心にクォータニオンを回転させることになっています。「回転」は、エンティティの回転を表すクォータニオンです。「amount」は、クォータニオンを回転させたい量(マウスを動かした量)です。'rot'は、ラジアンに変換された量のaw値を持つX軸に沿った正規化されたベクトルです(ここでの目標は、角度(たとえば、10度)を与え、指定された軸に沿ってクォータニオンを回転させることです。角度)。Quaternion.mulを使用すると、新しいクォータニオンを取得し、それを回転クォータニオンで乗算してから、結果を回転クォータニオンとして格納します。'rot'は正常であり、'rotation'はすでに正規化されているはずなので、正規化が必要かどうかはわかりません。
rotateYメソッドとrotateZメソッドは、「rot」のベクトルを変更することを除いて、同じことを行います(yの場合は0.0、1.0、0.0、zの場合は0.0、0.0、1.0)。
ゲームが開始され、カメラが負のZ軸を見下ろしている場合、コードは正常に機能しているように見えます。Y軸を中心に、またはX軸を中心に回転できます。しかし、Z軸を見下ろさずにカメラを回転させようとすると、すべてが本当に厄介になります(私はそれを説明することさえできません、それは非常に奇妙に回転します)。
ここでの私の最終目標は、アップベクトルのない空間で船を制御するために使用するものを用意することです。したがって、Y軸上でマウスを動かすと、船の角度に関係なく、船のピッチが変化します(X軸に沿った回転)。同様に、X軸上でマウスを動かすと、ヨー(Y軸に沿った回転)が変わります。私はこれを間違った方法で行っている可能性があり、おそらく正しい方向に押す(または突き出す)必要があります。
何か(私のレンダリングがどのように行われるか、私がやろうとしている他の数学)についてさらに詳細が必要な場合は、質問してください。私はオイラー角を使用していたときにすべてを理解しました(これは明らかに3Dアプリケーション開発にとっては大したことではありません...誰かが私がそれらを動作させるために多くの時間を沈める前に私に言ってくれたらいいのにと思います)クォータニオンに切り替えて、私は頭をとても速く乗り越えました。私は過去数か月間、このコードで遊んで、それを機能させるためにクォータニオンについて読んでいましたが、実際にはどこにも到達していません:'(
非常に、非常にイライラします...3Dで何かを作ろうとしたことを後悔し始めました>_ <
java - マインクラフト Mod を作っています。コンパイルエラー
スピードハック用のキーバインドをいくつか作成しています。キーバインドの一部が完了しました。これは私が得るエラーです。ブール値を間違った場所に置くことが原因だと思います。
== MCP v4.4 ==
== エラーが見つかりました ==
コード
新しい問題を編集
コード
スタック オーバーフローの書式設定がおかしいので、pasteie を使用 http://pastie.org/2741100
java - プロジェクトを実行可能な Jar として抽出できません
友達との最初のアルファ テストのために、ゲームを実行可能な .jar ファイルに抽出しようとしています。ただし、エクスポートすると、空白のフレームを開くだけのアプリケーションが表示されます。Run within Eclipse を使用すると正常に動作します。
これが私の静的メインです:
そして、あなたが尋ねる前に、私は Main クラス (私のマニフェストで選択されています) を実行可能なスレッドではなくしようとしました。割り当てられたメモリのどこにも到達しないため、ゲーム機能自体が実行されていないことはわかっています。
私のopenglライブラリはjarに抽出されます。Main クラスはプロセス パッケージ内にあります (デフォルト パッケージでも機能しませんでした)。
そして、私が言ったように、Main をメイン クラス (静的メインが含まれる) として割り当てるマニフェストから実行されています。
私はそれをかなりいじり、 Display クラスへのすべての呼び出しに絞り込みましたが、それらは Run in Eclipse から正常に動作します。(使用 System.exit(0); 関数呼び出しの後、フリーズした場合はそれらを削除しました。)
追加: 抽出された jar 内の lwjgl パッケージ内で、Display クラスが 8 つの個別のファイルに分割されていることもわかりました。ただし、opengl.* をインポートしています。
opengl - OpenGLアルファブレンディング
アルファブレンディングで5349574673ページを見つけましたが、それでも目的の結果を得ることができません。openglを使用してgif/pngファイルを(透明度/半透明度で)正しく表示しようとしています。
これが私の初期化ビットです:
画像に透明度があり、正しく読み込まれていることを確認します。
glBlendFunc(GL_ONE、GL_ONE); 動作しますが、アルファチャネルで何かを実行しているかどうかはわかりません。これは、黒としてレンダリングされるためです=>ブレンディングは動作します
glColor4f(1f、1f、1f、0.3f); うまくいきます、透明なものを描くことができます
PS私はこの例http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Gameを学習に使用しています
編集 GIMPや他のテクスチャローダーでエンコードされた他のテクスチャを使用しましたが、正常に動作するようになりました。
java - Eclipse: ネイティブで JAR をパッケージ化する
LWJGL を使用して Java ゲームを作成しましたが、これにはいくつかのネイティブ ファイルが必要です。Eclipseではすべて正常に動作します。JAR ファイル内に .dll ファイルを含めたいのですが、試行するたびに LWJGL がネイティブ ファイルを見つけることができません。私はすでにjarspliceまたはfatjarを使用しようとしましたが、役に立ちませんでした. minecraft も LWJGL を使用してプログラムされていることを知っており、別のフォルダーからネイティブを読み込むことができます。
ネイティブ ファイルを JAR ファイルにパッケージ化し、LWJGL などのサード パーティ ライブラリにアクセスさせる方法はありますか? そうでない場合、外部フォルダーからそれらをロードするにはどうすればよいですか?
編集: どういうわけか、JAR ファイルと同じディレクトリにあるネイティブで動作しました。ただし、いくつかの説明と、おそらく他の方法が必要です。
java - Javaゲームを.jarにエクスポートする際の問題
lwjglとslick-utilを使用したJavaゲームがあります。それは私のコンピューターでは完全に機能しますが、他の人のコンピューターでは機能しません。それは瓶にパッケージされています。Eclipseを使用してjarを作成し、Jarspliceを使用してネイティブとライブラリを封印しました。ベースJarフォルダーには、パッケージディレクトリとネイティブのみが含まれ、マニフェストやクラスパスは含まれません。ゲーム自体はアプレットではありません。
私のコンピューターから、このjarは機能し、ゲームを完璧に実行します。他の人の場合、メインコードでDisplayクラスが呼び出されるとすぐにクラッシュします(基本的なJava名とアイコンおよび灰色の内部ウィンドウを含む空のフレームが残ります)。私は32ビットと64ビットの両方のネイティブをパックし、32ビットと64ビットのWindowsシステムで同様にテストしましたが、それを実行するのは私のもの(Windows 32ビット)だけです。
jarには、ベースフォルダーにクラスパスまたはマニフェストがありません。
jarを実行する前に、eclipseビルド参照フォルダーの名前をnativesフォルダーに変更しましたが、それでも機能しました。私は他のどこにも原住民を持っていません。
これがjar内のMETA-INF/MANIFEST.MFです。Main-Class行を削除しても、jarがコンピューターで機能しないことに注意してください。参照されているクラスはJar内にあります。
jar内のディレクトリ構造は次のとおりです。
更新:おそらく私がインストールしたものが原因で、自分のマシンでのみ検出されるネイティブに明確に絞り込みました。多分私は何かが欠けていますか?