C# を使用してプラットフォーマー ゲームに「Lives: 3」を追加しようとしています。
Drawhud()
現在、ゲームは次のような方法でスコアを描画します。
// Draw time remaining. Uses modulo division to cause blinking when the
// player is running out of time.
string timeString = "TIME: " + level.TimeRemaining.Minutes.ToString("00") + ":" + level.TimeRemaining.Seconds.ToString("00");
Color timeColor;
if (level.TimeRemaining > WarningTime ||
level.ReachedExit ||
(int)level.TimeRemaining.TotalSeconds % 2 == 0)
{
timeColor = Color.Yellow;
}
else
{
timeColor = Color.Red;
}
DrawShadowedString(hudFont, timeString, hudLocation, timeColor);
// Draw score
float timeHeight = hudFont.MeasureString(timeString).Y;
DrawShadowedString(hudFont, "SCORE: " + level.Score.ToString(), hudLocation + new Vector2(0.0f, timeHeight * 1.2f), Color.Yellow);
私はこのように生活を描こうとしました(コードを大幅に簡素化しました):
// Players lives
public const int PlayerLives = 3;
// Draw Player Lives
float LivesHeight = hudFont.MeasureString(timeHeight).Y;
DrawShadowedString(hudFont, "Lives: " + Player.PlayerLives.ToString("0"), hudLocation + new Vector2(0.0f, LivesHeight * 1.4f), Color.Yellow);
DrawShadowString()
これは、メソッドで作成した文字列を描画しません。どうしてこれなの?それを行う簡単な方法はありますか?
これは、DrawShadowedString()
要求された方法です。
private void DrawShadowedString(SpriteFont font, string value, Vector2 position, Color color)
{
spriteBatch.DrawString(font, value, position + new Vector2(1.0f, 1.0f), Color.Black);
spriteBatch.DrawString(font, value, position, color);
}
ありがとう