我尝试了几个小时搜索这个问题,但没有找到任何解决方案。
事情是这样的:
我开始编写一个类似于口袋妖怪的小型 RPG,其中包括健康条在内的战斗。
对于我正在使用此代码的健康栏:
public void Draw(GameTime gameTime)
{
spriteBatch.Draw(pixel, new Rectangle((int)hpBarPosition.X - 2, (int)hpBarPosition.Y - 2, monstar.HPBase + 4, hpBarHeight + 4), Color.Black);
spriteBatch.Draw(pixel, new Rectangle((int)hpBarPosition.X, (int)hpBarPosition.Y, monstar.HPCurrent, hpBarHeight), Color.Green);
}
相关变量在这里解释:
-
monstar.HPBase
并且HPCurrent
只是像 300 这样的 int 值。 hpBarPosition
被初始化Vector2 hpBarPosition = new Vector2(350, 180);
hpBarHeight
是 10。pixel
在我的 HPBar 类的构造函数中初始化为
pixel = new Texture2D(spriteBatch.GraphicsDevice, 1, 1);
- 这
spriteBatch
与我的主要课程相同。(它只是作为参数传递) - -Method 在 a和 a之间的主类的
Draw
-Method 中调用Draw
GraphicsDevice.Clear(Color.Indigo); spriteBatch.Begin();
spriteBatch.End();
顺便说一句,我的班级不继承自DrawableGameComponent
. Draw
我只是在主类的draw方法中 调用我自己编写的方法。
现在我期待一个黑色条,其顶部有一个稍小的绿色条,以便黑色条充当绿色条的边框。然而,黑色根本没有出现。而绿色条是绿色和靛蓝的混合色,是类似于这张图表上的 CadetBlue 的深蓝绿色。但它并不总是这样。有时我会看到黑色条和一个非常深的绿色,而且很少看起来像预期的那样。
我在 Windows 7 上的 Visual Studio 2012 上使用最新的 Monogame 版本。除了健康栏之外,所有其他纹理,如角色、怪物、背景图块都可以正确显示。
知道问题是什么吗?
提前致谢。