質問

念のため、私は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);
        }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top