1

XNA、C#で作成されたゲームに取り組んでおり、xmlベースのアニメーションを有効にしたいです。

XMLは次のようになります

<Animation>
<AnimatedObject>
<Filename>Spaceship_Jet_01</Filename>
<Flipped>false</Flipped>
<StartPosition_X>300</StartPosition_X>
<StartPosition_Y>500</StartPosition_Y>
<GOTOPosition_X>650</GOTOPosition_X>
<GOTOPosition_Y>500</GOTOPosition_Y>
<Time>10000</Time>
</AnimatedObject>
</Animation>

これにより、オブジェクトが次のように横に移動します http://imm.io/odc7(X座標が間違っていると申し訳ありません)

オブジェクトの出所と移動先に関するピクセル単位の正確な情報を入力するため、プレーヤーの表示解像度が私のものと異なる場合、問題が発生することに気付きました。

グリッドについて考えたので、プログラムにオブジェクトを(30,27)から(22,27)に移動するように指示できます。これは良い解決策ですか?グリッドは解像度から独立している必要がありますが、タイルの数は一定である必要があり、オブジェクトを画面に描画する必要があります。つまり、位置(22,27)でタイルの正しいピクセル位置を見つけてから、オブジェクトをそのタイルに「移動」する必要があります。

それを行うためのより良い方法はありますか?XNAでこれを解決するにはどうすればよいですか?

4

1 に答える 1

0

2Dカメラを使用する場合は、問題はありません。新しいビューを計算して新しい解像度に適合させるのは難しくないためです。また、ロード方法やロジックを変更する必要はありません。 。

できますが、私は好きではありません

  1. [0..1]の範囲の位置で作業すると、測定が困難になります。

  2. xmlをロードするときに新しい解像度係数で位置を修正します...醜いです...

    Pos *= NewResolutionSize/DefaultResolutionSize;
    
于 2012-05-04T20:08:34.933 に答える