Изменение размера и загрузите текстуру2d в xna
Вопрос
Я новичок в 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);
}