重力のある世界でキャラクターをカーブしたスロープに沿って移動させる


10

私はこのゲームを見ました

ファンシーパンツ2。そして、物理学と美しいアニメーションとは別に気付いたのは、キャラクターが坂道に沿って移動していることです。私はBox2dでの経験はほとんどありませんが、このカーブしたスロープの概念は初めてです。もし誰かがこのコンセプトとその実装について私に啓蒙したなら、それは私にとって大きな助けになるでしょう。実装がbox2dにない場合でも、それは歓迎されます。


2
:(Flashである)Metanet、Nをした男は、彼らが曲線を計算する方法をカバーする衝突をした方法についてのチュートリアル持っmetanetsoftware.com/technique/tutorialA.html
CodexArcanum

回答:


5

どのようにBox2Dで曲線を取得しますか?

BOX2Dの未発表バージョン、二つの新しい形状の種類があるb2LoopShapeb2EdgeShapeあなたがラインセグメントのシーケンス外のカーブを作成してみましょう。

リリースされたバージョンでは、角度を付けて設定された複数の小さなボックスを使用して同様の効果を得ることができますが、ボディは接続ポイントの近くで不安定で予期しないことを行う傾向があります。なので、未公開版の使用をお勧めします。

キャラクターはどのようにしてカーブから落ちることができますか?

キャラクターをホイールにしよう!プラットフォーマーの物理学についての私の質問はこれについていくらか議論がありますが、基本的な考え方は、キャラクターの体を回転するホイールにマウントし、ホイールに回転力を加えることによって動くことです。ホイールには摩擦がありますが(実際には)、重力による下向きの力により、実際のホイールのように、坂を下って回転します。回転ジョイントのモーターパラメータを変更することで、小さな傾斜の転がりを避けるために必要なだけ回転に抵抗することができます。


私はあなたに同意します。b2LoopShapeを使用することで、私の望みどおりにスロープを作成できました。しかし、あなたが投稿したリンクをたどると、問題は、box2dのフラッシュポートがC ++バージョンだけにならないことです。1.)そのための提案はありますか?または2.)カーブしたスロープを作成できるフラッシュ用のその他の物理エンジンを知っていますか?
Vishnu

Box2DのFlashポートが新しいジョイント/シェイプタイプに対応しているとは思いません。FlashでBox2D以外に使用できる物理エンジンはわかりません。

@ジョー:私があなたに尋ねるなら、私がb2LoopShape用のASクラスを書いてみたらそれが可能かどうか?どこからヘディングを始めなければなりませんか?どんな手掛かり?
ヴィシュヌ

1

ファンシーパンツはFlashで作成され、Flashには 'hitTest'と呼ばれる特定のメソッドがあり、描画されたものに対してピクセルをテストできます(この場合、ファンシーパンツキャラクターの下部に沿って2〜3ピクセルのhitTestsを実行します)。指定されたムービークリップオブジェクト内。正しく感じるようにするのは少し難しいかもしれませんが、この組み込み関数は、非常に多くのFlashゲームがカーブしたスロープと衝突する理由です。他のほとんどのエンジンでは、プロセスははるかに複雑であり、通常は手動で実行する必要がありますが、いくつかの方法があります。

私が最もよく知っている方法は、エンジンがタイルベースの場合(ソニックザハリネズミを考える)、曲線として指定されたタイルはそれぞれ、キャラクターの現在の「X」位置に基づいて「Y」衝突位置を決定する式を持つことができますそのタイルの上。探している勾配の急さと曲がり具合に基づいて式を決定する必要があります。グラフ計算機またはグラフ作成プログラムを使用して、数式を試すことができます。このようにして、さまざまな曲線と数式が関連付けられた複数のタイルを作成できます。


Sonicには、タイルの曲線式がありません。各ピクセルに2D高さマップを使用します。
AttackingHobo

@AttackingHobo:各ピクセルの2dheightマップとは何か教えてもらえますか、それともフラッシュゲームで使用できる場所を教えてもらえますか?
Vishnu

2
info.sonicretro.org/Sonic_Physics_Guideこれを見てください。ボックス2dを使用する場合、これが役立つかどうかはわかりません。独自の物理エンジンをロールする必要があるかもしれません。
AttackingHobo

@Atoacking Hobo:box2d apiでループを許可するAS 3.0クラスを作成しようとすると、カーブしたスロープを「実行」することに利点や可能性はありますか?
Vishnu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.