問題タブ [box2dweb]
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.
box2dweb - javascript ポートの Box2D でのメモリ リークの問題を回避するにはどうすればよいですか?
私が理解しているように、Web 用の Box2D バージョンではメモリ リークが発生しており、ボディは削除されず、連絡先も削除されません。では、どうすればこの問題を解決できますか?
リークの仕方を説明している私の関連する質問を参照してください。Box2D バグ?
box2d - 実行時にジョイントを作成すると、オブジェクトがテレポートする
2 つのオブジェクトがあり、それらの間の距離が 10 未満の場合、ジョイントを作成します。
ただし、問題は、1 つのオブジェクトが他のオブジェクトの上にテレポート/ジャンプすることです。意図した動作は、1 つのオブジェクトが他のオブジェクトの上をゆっくりと移動することです。
何か案が?ありがとう。
meteor - Box2d-Web と Meteor
クライアント側とサーバー側の両方でBox2D-Webを使用したいと考えてい ます。Meteorjs
で使用しましたnodejs
。Box2D
変数をエクスポートする小さな構成があり、 nodejs
. 追加の構成は
exports.Box2D = Box2D;
、ライブラリの下部にありました。
しかし、私はそれをロードできませんでしたmeteor
。Box2D-web
プロジェクトにアンダーlib
ディレクトリを配置しました。しかし、エラーが発生し、問題が何であるかはまだわかりません。
これが流星が言っていることです。
Box2D-Web ライブラリについてはエラーはありません。エラーの別の意味を見つけようとしましたが、何も見つかりませんでした。
lib
このエラーは、プロジェクト ルートの下のフォルダーの下にライブラリを配置したときに発生しています。
ここにライブラリのすべてのコードを入れたわけではありません。実際にはあまりにも多くのコード行で構成されているためです。
に適用するために、ライブラリでどのような追加構成を行うことができますMeteorjs
か?
ありがとうございました!
mouse - mouseJoint box2dweb が動かない
マウスジョイントを使用してマウスでオブジェクトをキャッチしようとしています。私はばかなので、コードを盗みました。しかし、それは機能していません。
次のエラーが表示されます。
Uncaught TypeError: Object #< ba > has no method 'IsActive' Box2dWeb-2.1.a.3.min.js:236 Uncaught TypeError: Object #< ba > has no method 'SetAwake' Box2dWeb-2.1.a.3.min .js:223
コードは次のとおりです。
そしてこれが本体
}
多分誰かが助けることができますか?
ファルク
javascript - box2dweb を使用してスプライト アニメーションを描画する
私が基本的にやろうとしているのは、このアニメーションhttp://jsfiddle.net/TLYZS/6/を私のbox2dプロジェクトで作成することですが、各フレームの描画ロジックで問題が発生しています。これはこれまでの結果です: http:/ /jsfiddle.net/H8e9m/6/ ボディ描画機能を修正してアニメーションを機能させるにはどうすればよいですか? ご覧のとおり、アニメーション スプライトの最初のフレームしか描画できず、最初の jsfiddle で表示されるまったく同じアニメーションを作成する方法が見つかりません。ここでは、キャラクターがアイドル モードになっていることがわかります。
これは描画機能であり、おそらく問題はここにあります
これはアニメーション変数と更新関数です
私のjsfiddleをチェックしてこれまでの進行状況を確認し、この問題を解決するにはどうすればよいか教えてください
javascript - javascriptでモバイルデバイスのどの方向が下にあるかを判断しますか?
Box2D を使用してツールを作成しており、モバイル デバイスに作用する実際の重力の方向を一致させる方法があるかどうかを確認したいと考えていました。
devicemotion イベントにバインドすることで、これを iPad で完全に動作させることができました。ユーザーがデバイスを横向きまたは縦向きモードで保持しているかどうかを判断するために、ウィンドウの幅が高さよりも大きいかどうかを確認し、その事実に基づいて加速度計が提供するデータを変換します。たとえば、iPad がホーム ボタンをデバイスの下部に向けて保持されている場合、予想どおり、y は負であり、重力に対応します。デバイスを左右に 90 度回転させると、y は 0 に向かって移動し、x は 9.8 に増加するか、-9.8 に減少します。
問題は、向きがデフォルトで横向きになっている Android デバイスに移動すると (つまり、デバイスのハードウェアが、主に横向きで使用することを意図していることが明確になるように配置されている)、x 座標と y 座標が逆になることです。また、ウィンドウの高さが幅よりも大きいという事実は、ユーザーがデバイスの上部を「上」に、下部を「下」にして保持しているかどうかを判断するために使用できません。
デバイスが保持されている方向を判断し、その結果、重力が常に地球に対して相対的になるように加速度計のデータを解釈する方法を知るためのより普遍的な方法はありますか?
プロパティ値を決定するために使用しているメソッドの簡単な抜粋を次に示します。
window.addEventListener('devicemotion', function(e) {
console.log(e.accelerationIncludingGravity.x);
console.log(e.accelerationIncludingGravity.y);
})
javascript - オブジェクト衝突時のBox2dWeb呼び出し関数
私はjavascriptとbox2dにかなり慣れていません.2つのオブジェクトが衝突したときにカスタム関数を呼び出す方法を誰かが知っているかどうか疑問に思っていました. 成功せずに を使用するいくつかの例を使用してみましたb2ContactListener
。オブジェクトを別のオブジェクトの上に配置し、標準の Box2d 物理演算に任せました。
2 つのコンソール出力を受け取ります。1 つ目は次のコードでnull
、2 つ目はBall
次のコードです。
衝突する必要がある 2 つのオブジェクトは、b2_dynamicbody
(ボール) とb2PolygonShape
です。(矩形)。bodyDef.userData = "Ball";
Ball.js と Mouse.js で使用して、それらbodyDef.userData = "Mouse";
がヒットしたかどうかを識別しようとします。代わりに、ボールのみが表示されます。
次に、これは衝突を検出するための正しい方法ではないと確信しています:PI 十分に説明したことを願っています。誰かが私を正しい方向に導くことができますか?
javascript - 関数が undefined を返すのはなぜですか?
easyjs と box2d を使用して、互いに衝突するいくつかのオブジェクトを作成しました。次のコードを使用して、画面にボックスを作成します。
私のスクリプトのある時点で、ボックスが円と衝突し、それが発生すると、三角形がボックスに向かってトゥイーンする必要があります。だから箱の位置が必要!私Box.js
は次の機能を持っています:
同じ関数を次の関数に置き換えました。
どちらの関数も、私が使用するブラウザ コンソールに対して同じ値を返しますがconsole.log(b.getX);
、これは未定義です。リターン関数でパラメーターを渡す必要がありますか、それとも関数の構造が正しくありませんか?
box2d - Box2d: 回転ジョイントの開始角度
回転ジョイントの指定された角度でボディを開始するには、referenceAngle を設定するという印象を受けました。これは私にはうまくいきません。referenceAngle を変更するときに変更されるのは、制限の位置だけです。
box2dweb (javascript バージョン) を使用しています。覗いていただければ、デモを作成しました。回転ジョイントを持つ 2 つの同一の構造があります。どちらも -90deg から 90deg の angleLimits を持っています。唯一の違いは、上部の構造の参照角度が 0 度であるのに対し、下部の構造の参照角度は 90 度であることです。はい、ラジアンで角度を受け入れることは知っています。ソースを見ると、コンバーター関数を使用していることがわかります。
繰り返しますが、特定の角度でボディ/ジョイントを開始しようとしています。おそらく間違っているだけだと思いますが、これがbox2dwebの問題である場合、開始角度を設定するための回避策/代替手段はありますか? または、正しい目的で referenceAngle を使用していませんか?
これが --デモです