私はXNAの傾斜したタイルを移動するのをいじっていますが、それは半機能的ですが完全に満足できるものではありません。また、あらかじめ決められた勾配のセットがあると、「有機的」に見える地形が十分に得られない可能性があるとも考えていました。また、スロープごとにいくつかの異なるタイプのタイルを作成する必要があるという問題もあります(私が理解しているように、45度のタイルのみが完全にチェーンされます)。
傾斜したタイルがつながっているエッジのグリッチで問題が発生したため、傾斜したタイルのつながったチェーンをスキャンして新しい大きな三角形として扱うことを考えていました。しかし、これは地形の曲率を制限する問題に戻ります。
したがって、私が今やりたいのは、レベル(またはレベルのセクション)のテレインの単純な画像またはテクスチャを作成し、テレインの単純な高さマップ(各XのYの)を生成することです。プレーヤーのY位置は、X位置に基づいて更新されます。
これを行う簡単な方法(またはこの問題を解決するより良い方法)はありますか?私がこの方法で見ることができる主な問題は、歩くことができる地上の領域がある場合です。多分歩くことができるすべての地上エリアをマッピングする方法はありますか?
私はこの有用なコードを調べてきました:http : //thirdpartyninjas.com/blog/2010/07/28/sloped-platform-collision/ しかし、実際のポイント/ベクトルを生成する方法が必要です。
編集:私は投稿したリンクを使用して傾斜したパスを事前に生成しようとしましたが、今は提案したとおりにピクセルごとの衝突を使用する必要があると確信しています。私はhttp://create.msdn.com/en-US/education/catalog/tutorial/collision_2d_perpixelで例を見ていて、衝突が検出されたときにスプライトを調整する方法を理解しようとしています。デビッドが示唆したように、私はいくつかのセンサーポイント(足、側面、下部中央など)を作成し、これらのポイントが実際に2番目のテクスチャの不透明な部分(単純な傾斜)と衝突するときを簡単に検出できます。衝突に基づいて実際にスプライトの位置を調整する方法のアルゴリズムに問題があります。
スプライトの右足の斜面との衝突を検出したとしましょう。傾斜テクスチャデータをスキャンして、スプライトの足を傾斜の内側に配置しないようにY位置を見つけるにはどうすればよいですか?例で1D配列として格納する方法は少しわかりにくいですが、代わりに2D配列としてデータを格納する必要がありますか?
また、衝突チェックを水平方向と垂直方向に分離するのが最善であると何人かの人々が述べていることに気づきました。なぜそれが正確なのですか?