7

念のため、私はXNAの初心者です。私がやろうとしているのは、元のサイズとは異なるサイズのテクスチャをロードすることです。少なくとも、後でサイズを変更する可能性があります。私が使用できるいくつかの場所で見ます:

Texture2D.FromStream(GraphicsDevice graphicsDevice, Stream stream, 
                 int width, int height, bool zoom)

しかし、この方法でテクスチャをロードするとContentManagerが無視され、ガベージコレクターの仕事がより困難になっていることも読みました。

ContentManager を使用して任意のサイズの画像を読み込む正しい方法は何ですか? それが不可能な場合は、ズームを使用するように、サイズを比例的に変更できますか?

コンテキスト: nxn 個の平和のボードを作成しています。n が大きすぎると、ピースが自動的に小さくなる必要があります。

4

2 に答える 2

12

テクスチャをロードするには:

Texture2D tex = Content.Load<Texture2D>("somefile");

サイズを変更するには、「スケール」をとるSpriteBatchオーバーロードの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の教育カタログも確認してください。

于 2010-12-03T20:38:20.403 に答える
1
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);
        }
于 2017-01-18T22:10:22.580 に答える