我是XNA的新手以防万一。我尝试做的是加载与原版不同尺寸的纹理,或者至少有可能在之后改变尺寸。我在某些地方看到我可以使用:
Texture2D.FromStream(GraphicsDevice graphicsDevice, Stream stream,
int width, int height, bool zoom)
但我也读到以这种方式加载纹理忽略了ContentManager,而且我为垃圾收集器做的工作更加困难。
使用ContentManager加载任意大小的图像的正确方法是什么? 如果那是不可能的,我可以按比例改变他的大小,比如使用缩放吗?
上下文: 我正在创建一个n x n和平委员会。当n太大时我会自动地需要和平变得更小。
答案 0 :(得分:10)
加载纹理:
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新手,建议您阅读this short tutorial,并在create.msdn.com上查看Education Catalog
答案 1 :(得分:1)
v-on:EventName="doSmth"