1

用語がよくわからないので、グーグルで苦労しています。ただし、これは一般的な問題です。スプライトシートを繰り返し処理したいのですが、スプライトの周囲の透明な背景を無視し、表示内容の一部として含めないようにします。

たとえば、フレームがいくつかある場合は、各フレームを繰り返し処理して、その画像を読み込みます。次に、そのフレームで、余分な「背景」ではなく、画像自体の周りに長方形を描画して絞り込みます。これはおそらく、不透明なピクセルであるスプライトのコーナーを見つけることによって達成されます(この部分がどのように機能するかはわかりません)。

これは意味がありますか?繰り返しになりますが、ここで使用する単語が正確にわからない...これが不明な場合はお知らせください。

ここでの目標は、他のフレームと正確に正方形のスプライトをロードすることです。これにより、意図せずにぐらついたり跳ねたりすることはありません。

どうもありがとう!!

4

1 に答える 1

1

私は最初のゲームにも取り組んでいますが、スプライトの周りの透明な領域、この場合は衝突についても同様の問題がありました。

私が行ったのは、各スプライトがXとYの位置、高さ、幅、およびパディングを持つように設定することでした。

Vector2 position = new Vector2(100,100);
int frameHeight = 48;
int frameWidth = 48;
int paddingX = 4;
int paddingY = 3;

その情報を使用して、必要なものを取得できます。たとえば、使用できるスプライトの周囲の境界ボックスを表す長方形の場合です。

boundingRectangle = new Rectangle(
  (int)position.X + paddingX, 
  (int)position.Y + paddingY, 
  frameWidth - (paddingX * 2), 
  frameHeight - (paddingY * 2));

カート・イェガースの例によるXNA 4.0ゲーム開発でこれを読みました(これは私にとって大きな助けになりました)

于 2013-03-27T17:13:46.210 に答える