Вопрос

Я новичок в XNA на всякий случай. Что я пытаюсь сделать, это загружать текстуру разным размером из своего оригинала или, по крайней мере, иметь возможность изменить его размер после. Я вижу в некоторых местах, которые я могу использовать:

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

Но я также читаю эту загрузку текстур таким образом, игнорирует ContentManager, и что я делаю работу для сборщика мусора более сложным.

Какой правильный способ загрузить изображение в любом размере, используя ContentManager? Если это невозможно, могу ли я изменить его размер пропорционально, как использовать увеличение?

Контекст: Я создаю доску Nxn Peries. Когда n слишком большой, мне нужно, что автоматически миры становится более меньшим.

Это было полезно?

Решение

Загрузить текстуру:

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

Изменить размер, используйте один из перегрузок SpriteBatch, которая принимает «масштаб»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