この問題を数時間検索してみましたが、解決策が見つかりませんでした。
続きを読む:
私は、ヘルスバーを含む戦いを伴う小さなポケモンのような 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
300のHPCurrent
ような単なる int 値です。 hpBarPosition
初期化されていますVector2 hpBarPosition = new Vector2(350, 180);
hpBarHeight
は 10 です。pixel
私のHPBarクラスのコンストラクターで次のように初期化されます
pixel = new Texture2D(spriteBatch.GraphicsDevice, 1, 1);
- これ
spriteBatch
は私のメインクラスと同じです。(パラメータとして渡されるだけです) - -Method は、aと a の間のメイン クラスの -Methodで
Draw
呼び出されます。Draw
GraphicsDevice.Clear(Color.Indigo); spriteBatch.Begin();
spriteBatch.End();
ところで、私のクラスはから継承しませんDrawableGameComponent
。Draw
メインクラスの draw メソッドで 自分で書いたメソッドを呼び出しているだけです。
ここで、黒いバーが緑色のバーの境界として機能するように、その上に少し小さい緑色のバーがある黒いバーを期待していました。ただし、黒色はまったく表示されません。緑のバーは、このチャートの CadetBlue に似た濃い青みがかった緑である Green と Indigo の混合です。しかし、いつもそうであるとは限りません。黒いバーと非常に濃い緑色が表示されることがありますが、意図したとおりに見えることはほとんどありません。
Windows 7 の Visual Studio 2012 で最新の Monogame バージョンを使用しています。また、ヘルスバーを除いて、キャラクター、モンスター、背景タイルなどの他のすべてのテクスチャが適切に表示されます。
問題は何ですか?
前もって感謝します。