問題タブ [jbullet]
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 - Jbullet による 3D Java 衝突検出
そのため、自分のゲーム エンジンの衝突検出システムをゼロから作成することに長い時間を費やしましたが、時間がなくて成果がありませんでした。最後に、Jbullet を使用して処理を高速化することにしました。現在、ドキュメンテーションは基本的に役に立たず、箇条書きのコードを Java に転送しようとすると、多少の困難が生じます (または、転送したものが機能しません)。ライブラリ コードを検索しようとして髪をかきむしってきましたが、期待していた時間の節約はほとんど役に立ちませんでした。それで、私が何をしているのかを説明しようと思います。皆さんが私を助けてくれるかもしれません。私は単純な衝突検出だけを探しています。たとえば、何かをヒットしてから、今のところ行を印刷するだけです。残りはおそらく自分で解決できます。
だから私は自分の世界を作成します:
エンティティ クラスがあり、その中に、そのエンティティに関連付けられた物理オブジェクトのすべての情報を格納する別のクラスがあります。これにより、次のことを簡単に実行できます: entity.getPhysics().getCollisionObject()/.setPosition() など...
次に、そのクラスで CollisionObject を作成します。
これは、LWJGL ライブラリの Vector3f と Jbullets Vector3f からエンティティをレンダリングするために使用する、既に作成されたメッシュに変換されると思います。次に、メッシュ内のそれらの頂点から ConvexHullShape を作成します。私は次のように考えています。
メッシュを単純化することになっています(ドキュメントから)。次に、衝突オブジェクトを作成します。かなり単純だと思います...
Rigidbody を作成します (ただし、Rigid Body が必要なのか、衝突オブジェクトが必要なのかわかりませんが、これが本当かどうかを誰かが教えてくれれば、それは素晴らしいことです):
次に、ゲーム ループを実行します。
これは誰かからもらったものです... どこにあるか忘れましたが。したがって、基本的には何も起こっていません...確かではありませんが、オブジェクトを多様体に追加する必要があるか、そのようなものです。その方法がわからない。何か助けはありますか?
編集:私が今行ったことは、ちょうどランダムなサイズのボックスとして衝突形状を作成することです:
次に、ゴースト ボディを作成します。
それから私はあなたが言ったようにします、それはまだ「ヒット」を返しません。
編集2:
したがって、エンティティ クラスで次のようにオブジェクトを作成します。
位置などを更新するには:
さて、これは私の PhysicsEntity クラスです。ここで設定しました:
ありがとう、
java - IntelliJ で JBullet のデモを実行する
IntelliJ で JBullet のデモを正常に実行した人はいますか? Ant ビルド スクリプトを使用してデモを実行すると、次のような間違いが見つかりました。
C:\Users\halin_000\ProgrammingProjects\Java\CS351L\JBullet\build.xml:77: java.lang.IllegalStateException: Stack.alloc(Class) の最初のパラメーターは定数でなければなりません (クラス com.bulletphysics.collision.dispatch. ConvexConcaveCollisionAlgorithm、メソッド processCollision)
問題をどのように解決しますか?
android - Android Lollipop 5.0 の Jbullet でのガベージ コレクションの問題 (特に gbullet)
jbullet、特にgbulletを使用してレイキャストビークルを実装しようとしていますが、Android 5.0 Lollipopでガベージコレクターの問題が発生します。私は純粋なJavaポートを使用しているため、これはGLThreadで実行されます。Samsung Galaxy 5Sを使用しました。スタック トレースは次のとおりです。
android - 画面座標を OpenGL 座標に変換する
Android用のサイコロローラーアプリを作成しています。Kotlin、OpenGL-ES、jBullet を使用。サイコロを実装しました。ここで、壁を作成する必要があります。そうしないと、サイコロが画面から転がってしまうからです。
画面の縦横比が違うので、 で壁の位置を決めようとしているのですが、わかりglUnProject
ません。受け取った座標が正しくありません。
java - ブレットの使い方
HeightfieldTerrainShape
JBullet 物理ライブラリからの使い方を見つけるのに苦労しています。ご覧のとおり、2 つのコンストラクターが利用可能です。
と
heightScale
、minHeight
、maxHeight
およびupAxis
は自明です。しかし、「heightStick」とは正確には何ですか? また、幅と長さはどのように決定すればよいですか? heightfieldData にはどのような形式が期待されますか? これはフロートの単なるバイトバッファだと思いますか?