在XNA中调整大小并加载texture2d

7

我是一个XNA的新手。我的目标是加载一张不同于原始尺寸的纹理,或者至少有改变尺寸的可能性。我在一些地方看到可以使用:

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

但我也读到了这样的说法,以这种方式加载纹理会忽略ContentManager,并且会使垃圾回收更加困难。

使用ContentManager正确加载任意大小的图像的方法是什么? 如果不可能,我可以按比例改变它的大小,例如使用缩放吗?

背景: 我正在创建一个n x n的棋盘。当n太大时,我需要自动使棋子变得更小。


Joe的回答是正确的。此外:无论您是否使用ContentManager,垃圾收集器都没有区别。它只影响您如何卸载纹理,如果这是您的游戏所需的(例如:在不同关卡之间切换时)。请查看我在这里的答案:https://dev59.com/EVLTa4cB1Zd3GeqPXiN-#4265786。 - Andrew Russell
2个回答

12

谢谢!它的工作方式正是我想要的 :)...现在关于是否使用我提到的方法的问题,你认为安全吗?还是有其他考虑? - mjsr

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);
        }

2
欢迎来到Stack Overflow!仅有代码的答案并不是很有帮助,请编辑您的答案以解释为什么您的代码可以解决原始问题。 - Joe C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接