1

我尝试了几个小时搜索这个问题,但没有找到任何解决方案。
事情是这样的:
我开始编写一个类似于口袋妖怪的小型 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 中调用DrawGraphicsDevice.Clear(Color.Indigo); spriteBatch.Begin();spriteBatch.End();

顺便说一句,我的班级不继承自DrawableGameComponent. Draw我只是在主类的draw方法中 调用我自己编写的方法。

现在我期待一个黑色条,其顶部有一个稍小的绿色条,以便黑色条充当绿色条的边框。然而,黑色根本没有出现。而绿色条是绿色和靛蓝的混合色,是类似于这张图表上的 CadetBlue 的深蓝绿色。但它并不总是这样。有时我会看到黑色条和一个非常深的绿色,而且很少看起来像预期的那样。

我在 Windows 7 上的 Visual Studio 2012 上使用最新的 Monogame 版本。除了健康栏之外,所有其他纹理,如角色、怪物、背景图块都可以正确显示。

知道问题是什么吗?
提前致谢。

4

0 回答 0