【问题标题】:MonoGame SpriteBatch.Draw() invalid arguments when there really aren't any invalid arguments?当确实没有任何无效参数时,MonoGame SpriteBatch.Draw() 无效参数?
【发布时间】:2014-02-03 19:23:06
【问题描述】:

我正在 MonoGame 中绘制一个 Sprite,我正在尝试使用 Draw() 方法和允许 SpriteEffect 作为参数传递的重载,但我得到一个红色下划线,它说:

The best overloaded method match for 'Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(Microsoft.Xna.Framework.Graphics.Texture2D, Microsoft.Xna.Framework.Rectangle, Microsoft.Xna.Framework.Rectangle?, Microsoft.Xna.Framework.Color, float, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.Graphics.SpriteEffects, float)' has some invalid arguments

现在,我有理由相信控制台在撒谎。其中一个原因是它没有任何翻转的无效参数。

我的代码如下所示:

spriteBatch.Draw(Texture, destinationRectangle, null, Color.White, 0f, Vector2.Zero, effect, 1f);

Texture 是我在构造函数中初始化的本地 Texture2D 变量。 destinationRectangle 是一个 Rectangle,它作为参数传递给我自己的 Draw() 函数。 null 是不言自明的。这也适用于接下来的三个论点。 effect 只是作为参数传递,最后 1f 显然是 1f。

我知道我在这里做错了什么,我只是无法理解什么我做错了什么。有人可以帮忙吗?

【问题讨论】:

    标签: c# arguments draw monogame spritebatch


    【解决方案1】:

    你是否使用Texture这个词作为变量名? Texture 是一个抽象类,类似于 Stream。这意味着编译器会看到它并认为您指的是“纹理”类型,而不是变量。尝试将纹理名称更改为其他名称。 'myTexture' 可以用于测试目的。

    【讨论】:

    • 如果没有看到更多代码,我只能建议您尝试对每个值进行硬编码,直到您看到哪个值导致了错误;例如,效果变为 SpriteEffects.None。
    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多