【发布时间】:2013-05-23 16:09:14
【问题描述】:
我一直在尝试让我的游戏根据屏幕尺寸缩放每个精灵,我发现了这个site。
然而,他们似乎使用了 XNA 3.1,所以在 spriteBatch.Begin 中他们使用了一些在 XNA 4.0 中不起作用的代码,例如 SpriteBlendMode.AlphaBlend。现在我找到了一个将 3.1 代码转换为 4.0 的网站,我已经做到了。但它说
“spriteBatch.Begin() 方法没有重载需要 3 个参数”
在draw方法中。
目前看起来是这样的:
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SpriteScale);
它还想要什么?我可以在 SpriteScale 后面加上 null,null 吗?或者有没有更简单的方法来根据您的屏幕尺寸缩放游戏?请帮忙! :)
【问题讨论】:
-
XNA 4.0 有一个版本。 Scaling Sprites Based On Screen Size。我建议在 WindowsGL 项目中使用 MonoGame。
-
Omg 没有看到他们也有 4.0 xD 感谢 Romoku。现在这似乎效果好多了,但是当我按下 A 或 B 按钮时,游戏不会缩小,因此您可以在 800x600 中看到整个游戏,而只能看到游戏的一小部分。我不知道这是故意的还是我错过了什么。这是否也缩小了其他使用自己的缩放和绘制方法的类的对象?
-
在 MSDN 文档的 cmets 中查看。看起来
spriteBatch.Begin();应该是spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, null, null, SpriteScale);。看看这是否能解决您的问题。 -
要回答您问题的第二部分,我认为这不会缩放自定义比例/绘图。您需要将全局比例传递给需要它的每个对象。
-
我已经这样做了,但它仍然不起作用。你自己试过代码吗?
标签: c# xna scale xna-4.0 xna-3.0