1

各画像を 90 度、180 度、および 270 度に回転できる必要がある一連の画像があります。これらの画像はすべて Texture2D 型です。私のためにこれを達成するための組み込み関数はありますか? または、各画像の追加の回転画像をロードする必要がありますか? または、このタスクを完了するためのより良い方法はありますか?

4

2 に答える 2

5

SpriteBatch.Draw引数のほとんど (またはすべて) を指定する必要がありますが、テクスチャをバッファに描画するときに、 を使用してテクスチャを回転 (およびスケーリング) できます。角度はラジアンで与えられます。

SpriteBatch.Begin();
angle = (float)Math.PI / 2.0f;  // 90 degrees
scale = 1.0f;
SpriteBatch.Draw(myTexture, sourceRect, destRect, Color.White, angle,
                 position, scale, SpriteEffects.None, 0.0f);
SpriteBatch.End();

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.spritebatch.draw.aspx

画像の事前に回転したコピーをロードすることもできますが、おそらく通常の早期最適化の講義を受けることになるでしょう。

于 2012-05-10T05:16:10.320 に答える