Reposition info widgets/countdown timer widgets in centre top of vp

This commit is contained in:
Scott_NZ
2012-12-12 00:45:58 +13:00
parent 6871d2ed37
commit 32721ac8cb
3 changed files with 8 additions and 13 deletions

View File

@@ -417,10 +417,7 @@ namespace OpenRA.Mods.RA.Missions
{ {
Sound.Play("timergo1.aud"); Sound.Play("timergo1.aud");
reinforcementsTimer = new CountdownTimer(ReinforcementsTicks, ReinforcementsTimerExpired, true); reinforcementsTimer = new CountdownTimer(ReinforcementsTicks, ReinforcementsTimerExpired, true);
reinforcementsTimerWidget = new CountdownTimerWidget( reinforcementsTimerWidget = new CountdownTimerWidget(reinforcementsTimer, "Allied reinforcements arrive in: {0}");
reinforcementsTimer,
"Allied reinforcements arrive in: {0}",
new float2(Game.viewport.Width * 0.35f, Game.viewport.Height * 0.9f));
Ui.Root.AddChild(reinforcementsTimerWidget); Ui.Root.AddChild(reinforcementsTimerWidget);
} }

View File

@@ -154,7 +154,7 @@ namespace OpenRA.Mods.RA.Missions
if (world.FrameNumber == 1) if (world.FrameNumber == 1)
{ {
SpawnAlliedUnit(McvName); SpawnAlliedUnit(McvName);
evacuateWidget = new InfoWidget("", new float2(Game.viewport.Width * 0.35f, Game.viewport.Height * 0.9f)); evacuateWidget = new InfoWidget("");
Ui.Root.AddChild(evacuateWidget); Ui.Root.AddChild(evacuateWidget);
UpdateUnitsEvacuated(); UpdateUnitsEvacuated();
} }

View File

@@ -17,13 +17,11 @@ namespace OpenRA.Mods.RA.Missions
{ {
public CountdownTimer Timer { get; set; } public CountdownTimer Timer { get; set; }
public string Format { get; set; } public string Format { get; set; }
public float2 Position { get; set; }
public CountdownTimerWidget(CountdownTimer timer, string format, float2 position) public CountdownTimerWidget(CountdownTimer timer, string format)
{ {
Timer = timer; Timer = timer;
Format = format; Format = format;
Position = position;
} }
public override void Draw() public override void Draw()
@@ -34,19 +32,18 @@ namespace OpenRA.Mods.RA.Missions
} }
var font = Game.Renderer.Fonts["Bold"]; var font = Game.Renderer.Fonts["Bold"];
var text = Format.F(WidgetUtils.FormatTime(Timer.TicksLeft)); var text = Format.F(WidgetUtils.FormatTime(Timer.TicksLeft));
font.DrawTextWithContrast(text, Position, Timer.TicksLeft <= 25 * 10 && Game.LocalTick % 50 < 25 ? Color.Red : Color.White, Color.Black, 1); var pos = new float2(Game.viewport.Width * 0.5f - font.Measure(text).X / 2, Game.viewport.Height * 0.1f);
font.DrawTextWithContrast(text, pos, Timer.TicksLeft <= 25 * 10 && Game.LocalTick % 50 < 25 ? Color.Red : Color.White, Color.Black, 1);
} }
} }
public class InfoWidget : Widget public class InfoWidget : Widget
{ {
public string Text { get; set; } public string Text { get; set; }
public float2 Position { get; set; }
public InfoWidget(string text, float2 position) public InfoWidget(string text)
{ {
Text = text; Text = text;
Position = position;
} }
public override void Draw() public override void Draw()
@@ -56,7 +53,8 @@ namespace OpenRA.Mods.RA.Missions
return; return;
} }
var font = Game.Renderer.Fonts["Bold"]; var font = Game.Renderer.Fonts["Bold"];
font.DrawTextWithContrast(Text, Position, Color.White, Color.Black, 1); var pos = new float2(Game.viewport.Width * 0.5f - font.Measure(Text).X / 2, Game.viewport.Height * 0.1f);
font.DrawTextWithContrast(Text, pos, Color.White, Color.Black, 1);
} }
} }
} }