問題タブ [nape]

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.

0 投票する
1 に答える
81 参照

actionscript-3 - ムクドリとナペフィスがハンドアンカーを更新

私は現在、ネイティブステージを使用して、使用しているうなじ物理世界の物理体を計算しています。表示オブジェクトはスターリングエンジンで構築されています。

これがムクドリとうなじを一緒に混合する最良の方法であるか (エンター フレームでネイティブ ステージを使用する) か、それともより良いアプローチがあるかどうか疑問に思っています。

PivotJoint(_hand).anchor1.setxy( _nativeStage.mouseX, _nativeStage.mouseY );

さまざまな解像度でのドラッグで問題が発生したり、パフォーマンスの問題が発生したりしており、これが原因であると思われます。

ありがとう!

0 投票する
1 に答える
424 参照

actionscript-3 - うなじスペース.ステップと一定の衝動

奇妙な問題があります。ENTER_FRAMEベクトルを使用して(一定の動きを得るために)うなじで体を動かし、var vec:Vec2 = new Vec2(40,0);それを でインパルスとして適用すると、同じフレームでbody.applyImpulse(vec);シーンを「レンダリング」し、space.step(1 / this._stage.frameRate);aその時の動きの違いをピクセル単位でトレースしますボディ (前のフレームでの位置と比較して)、フレームごとに一定ではありません。その結果、同じフレームで 2 つのインパルスをレンダリングしたように、位置が前方にある場合がありますが、次のフレームにはインパルスや動きがなく、ランダムに発生するスプライトが不安定になります。空間には重力がありません (0,0)。

フレームごとに衝動のある体の一定の動きを得るにはどうすればよいですか? 使ってみましbody.position.setxy()たが、シミュレーションの目的に反します...

少し遊んでspace.step(1 / this._stage.frameRate);試してみましspace.step(0.1 / this._stage.frameRate);たランダムな揺れは消えますが、フレームごとに体が少し揺れます。何かご意見は ?

編集 applyImpulseの代わりにvelocityを使用しても、同じ問題があります

私はこれをすべてのフレームで実行し、体の x 上の位置の違いは次のとおりです。

そのため、時々、オブジェクトに適用される速度の結果は一定ではありません。それは、時々「前方」にレンダリングされ、私が言うことができる場合はそれ自体を「修正」するためです。

0 投票する
0 に答える
99 参照

actionscript-3 - 準備ができたらうなじイベント?

シミュレーションの準備ができていることを確認/聞く方法はありますか? 多くのオブジェクトを使用しているため、シーンとエンジンの初期化に時間がかかります。準備ができたときにディスパッチされるイベントは Nape にありますか? 初期化シーン関数 (ボディをうなじに追加する場所) の最後にディスパッチしても、それは行われません。何か案が ?乾杯。

0 投票する
0 に答える
163 参照

actionscript-3 - うなじ結果の衝動

一定の条件が揃うとプレイヤーの体が数メートル上昇し、空中でゆっくりと停止して下降するようにしています。

重力は600

それが上がるためには、それを押し下げる力と矛盾するために、impulse.y は少なくとも -601 でなければならないと考えました。ただし、-600 (またはそれよりも小さい値) に設定すると、上向きに発射されて二度と表示されなくなります。(-100でも)。

はい、インパルスは更新関数にあります。つまり、インパルスを常に追加して、ティックごとに高速化します。ただし、-20 を設定すると、y は上がりません (ティックごとにボディにインパルスが与えられるため、最終的には上がるはずです)。

これはまだ終わっていませんし、上に書いたものではありませんが要点です。条件が満たされると、プレーヤーは上向きになり、インパルスは力を失います。問題は、重力インパルスに対抗するのにどれだけ十分か分からないことです. 私は試行錯誤でそれを行うことができますが、それがどのように機能するかを知りたいのですが、重力= 600に相当する衝撃はどれくらいですか?

0 投票する
1 に答える
197 参照

actionscript-3 - PhysicsEditor から .as エクスポート ファイルを使用する方法

質問は長い間ここにあり、私にとって満足のいく解決策はありませんでした。私は最初の投稿を消去し、代わりに、はいまたはいいえですぐに答えられる質問を投稿しているので、自分の行動を進めることができます.

「よくない質問」で削除される前に、本当に早く答えていただければ。PhysicsEditor から Nape へのカスタム シェイプの使用は、 Box2D での使用と同じですか? (構文の変更)

そのリンクを見ていただければ、Nape と同じプロセスであると言っていただければ十分です。

これまでのところ、Box2D チュートリアルの方が簡単に理解できたので、これを尋ねます。

0 投票する
1 に答える
109 参照

actionscript-3 - ボディとスプライトの位置

コンパイルすると、ヒーローは床に触れませんが、とにかく数ピクセル上で停止します。両方の体とそれぞれのスプライトをトレースすれば、どちらが一致していないかがわかると思いました。

私は以下を得る、

ヒーロー: 470.2(...) / 470.2

フロア: 0 / 0

また、次の場合、y プロパティの床位置 0 はどのようになりますか。

うなじの体の「登録点」が真ん中にあるのに対し、スプライトは左上隅にあるので、スプライトに体の同じ x と y を与えると一致しないと読みました。スプライトの下は位置がずれます。

試しwallSprite.graphics.drawRect(-width/2, -height/2, width, height);ましたがうまくいきませんでした。問題はそこにあると思いますが、スプライトを適切に配置します。

0 投票する
1 に答える
453 参照

actionscript-3 - 一貫してシミュレーションを再生できる AS3 物理エンジンはどれですか?

私は現在、ActionScript 3.0 の「Peggle」スタイルのゲームに Nape 物理エンジンを使用しています。

ここに画像の説明を入力

とても使いやすく、スムーズに動きます。ただし、Nape で遭遇した唯一の問題は、まったく同じシミュレーションを再生することです。

ゲームプレイ全体で同じタイムステップ値を指定したとしても、計算に十分な「エラー」があるようで、ボールが時々異なるペグに当たり (ラウンドをゼロから開始)、多かれ少なかれ結果が出る場合もあります。点灯ペグ。

だから私の質問は:

与えられたシミュレーションを再起動するたびにまったく同じように再現できる Flash 用の物理エンジンは他にありますか?

編集:フレームごとにデータを「記録」して再生するというアイデアは、私がこの質問をした他のフォーラムで投げかけられました。しかし、残念ながら、「リプレイ」機能は、同じユーザーが自分のボール ドロップ シナリオを表示するためのものではありません。これは、異なるマシン上のプレーヤー間で共有するために使用されます (例: クライアントが、値 1234 をシードしたボール ドロップのバグを報告し、1234 をパンチすると、同じ問題を確認できるはずです)。したがって、一連のシナリオを事前に記録し (つまり、実際に物理シミュレーションを実行しているという錯覚をプレーヤーに与えるのに十分な量を意味します)、ランダムに 1 つを選択し、そのランダム ID を使用して特定のシナリオを識別します。 、つまり、大量のデータをゲームに埋め込む必要があります。物理エンジンが決定論的であれば、そうでなければ節約できたはずです。


そして、Napeですでに試したことをすべてチェックするために:

  • ボールはゲーム開始時に同じ位置と回転にリセットされます。
  • ボールの初期速度はユーザーのクリック時に設定されるため、これは最後のラウンドから持ち越された速度をオーバーライドする必要があります。
  • ペグは動かない (静止している) ので、リセットする必要はありません。
  • ボールをキャッチする部分はスタティックボックスとセンサーだけなので、リセットしても意味がありません。
0 投票する
1 に答える
155 参照

actionscript-3 - うなじ物理。宇宙・世界のSLEEPイベントを聞くには?

各ボディが「スリープ状態」になったときに、うなじの空間に動きがないときにトリガーされる単一のコールバックを設定するにはどうすればよいですか? これに対する適切な解決策を見つけることができませんでしたが、これは物理エンジンにとって必須の機能だと思います。ありがとうございました。

0 投票する
1 に答える
337 参照

actionscript-3 - [AS3][Nape Physics] InteractionListener で Nape ボディの関連オブジェクトにアクセスする方法は?

AS3 の物理エンジン Nape について助けが必要です。メンバー変数としていくつかの長方形 (うなじボディ) を持つクラスがあります。これらの長方形がシーン内のいくつかの円 (うなじ体も) と相互作用するときに反応する InteractionListener があります。ただし、InteractionListener 内で衝突を処理するときに、四角形が含まれるクラス インスタンスにアクセスする必要があります。クラス インスタンスには、呼び出す必要のあるメソッドがいくつかあります。これどうやってするの?

動的な量の有機体インスタンスがあります。各生物には動的な数の長方形があります。相互作用しているのは最初の四角形だけです。私が今見ることができる唯一の解決策は、相互作用するすべての長方形をすべての生物インスタンスのリストとともに別のリストに入れ、次に他のリストの長方形のインデックスを介して生物にアクセスすることです。しかし、長方形の本体のユーザーデータを介して有機体にアクセスできる方がはるかに高速です...最終クラスであるため、本体を拡張できませんでした。助けてください!

0 投票する
1 に答える
68 参照

haxe - 落下しない物体

重力と 2 つのオブジェクトがある空間を作成しました。

これが私のaddBox()機能です:

update()メソッドで step を呼び出します。

動的形状が地面に落ちない理由がわかりません...

何か案が?