XNAでテクスチャ2Dをサイズ変更してロードします
質問
念のため、私はXnaの初心者です。私がやろうとしているのは、オリジナルとは異なるサイズのテクスチャをロードするか、少なくともその後のサイズを変更する可能性があることです。私は使用できる場所のいくつかの場所で見ています:
Texture2D.FromStream(GraphicsDevice graphicsDevice, Stream stream,
int width, int height, bool zoom)
しかし、このようにテクスチャを読み込むことはコンテンツマネージャーを無視していること、そしてガベージコレクターの仕事をより困難にしていることを読みました。
ContentManagerを使用して、任意のサイズで画像をロードする正しい方法は何ですか?それが不可能な場合、ズームを使用するなど、彼のサイズを比例して変更できますか?
コンテキスト:NXN Peacesのボードを作成しています。 nが大きすぎると、自動的にピースがより小さくなる必要があります。
解決
テクスチャをロードするには:
Texture2D tex = Content.Load<Texture2D>("somefile");
サイズを変更するには、「スケール」をとるスプライトバッチオーバーロードの1つを使用しますhttp://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.spritebatch.draw.aspx
float scale = .5f; //50% smaller
SpriteBatch.Draw(tex, position, source, Color.White, rotation, scale, SpriteEffects.None, 0f);
あなたがXNAに慣れていないなら、私はあなたが読むことをお勧めします この短いチュートリアル, 、またチェックアウトしてください 教育カタログ create.msdn.comで
他のヒント
Texture2D texture;
protected override void LoadContent()
{
...
texture = Content.Load<Texture2D>("Tank");
...
}
protected override void Draw(GameTime gameTime)
{
...
Rectangle destinationRectangle = new Rectangle(100, 100, 30, 10);
spriteBatch.Draw(texture, destinationRectangle, Color.White);
...
spriteBatch.End();
base.Draw(gameTime);
}
所属していません StackOverflow