public override void InitScreen(ScreenType screenName) { StateManager.ScreenStateChanged += new EventHandler(StateManager_ScreenStateChanged); StateManager.ScreenResolutionChanged += new EventHandler<ViewportEventArgs>(Options_ScreenResolutionChanged); base.InitScreen(screenName); BackgroundSprite = GameContent.Assets.Images.NonPlayingObjects.GlobalBackground; title = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.BoldText, "You Won!", Color.White); title.X = title.GetCenterPosition(Graphics.Viewport).X; title.Y = 12.5f; AdditionalSprites.Add(title); planet = Sprites.AddNewSprite(new Vector2(-3, Graphics.Viewport.Height - GameContent.Assets.Images.NonPlayingObjects.Planet.Height + 11), GameContent.Assets.Images.NonPlayingObjects.Planet); msg = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, MessageText, Color.White); msg.Y = title.Y + title.Font.LineSpacing; AdditionalSprites.Add(msg); netScreenButton = Sprites.AddNewSprite(Vector2.Zero, GameContent.Assets.Images.Controls.Button); netScreenButton.Position = netScreenButton.GetCenterPosition(Graphics.Viewport); netScreenLabel = StateManager.CreateButtonTextSprite(false, "Multiplayer", netScreenButton, this); netScreenLabel.Pressed += StateManager.ButtonSFXHelper; netScreenLabel.Pressed += new EventHandler(netScreenLabel_Pressed); }
public override void InitScreen(ScreenType screenName) { base.InitScreen(screenName); BackgroundSprite = HorizontalMenuBGSprite.CurrentBG; title = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.BoldText, "Available " + (StateManager.NetworkData.SessionType == NetworkSessionType.SystemLink ? "LAN" : "LIVE") + " Sectors"); title.Color = Color.White; title.Y = 5; title.X = title.GetCenterPosition(Graphics.Viewport).X; reloadButton = new Sprite(GameContent.Assets.Images.Controls.Button, new Vector2(0, title.Y + title.Font.LineSpacing + 10), Sprites.SpriteBatch); reloadButton.X = reloadButton.GetCenterPosition(Graphics.Viewport).X; reload = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, "Refresh"); reload.ParentSprite = reloadButton; reload.NonHoverColor = Color.White; reload.HoverColor = Color.MediumAquamarine; reload.IsHoverable = true; reload.Pressed += new EventHandler(reload_Pressed); BackButton = new Sprite(GameContent.Assets.Images.Controls.Button, new Vector2(20, Graphics.Viewport.Height), Sprites.SpriteBatch); BackButton.Y -= BackButton.Height + 20; BackLabel = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, "Back", Color.White) { IsHoverable = true, HoverColor = Color.MediumAquamarine, NonHoverColor = Color.White }; BackLabel.ParentSprite = BackButton; BackLabel.Pressed += new EventHandler(BackLabel_Pressed); BackLabel.Visible = true; Sprites.Add(BackButton); AdditionalSprites.Add(title); AdditionalSprites.Add(reload); Sprites.Add(reloadButton); #if XBOX AllButtons = new GamePadButtonEnumerator(new TextSprite[,] { { reload }, { BackLabel } }, InputType.LeftJoystick); AllButtons.FireTextSpritePressed = true; #endif }
/// <summary> /// Load Game Assets and initialize all screens /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); mainScreen = new Screen(spriteBatch, Color.Black); mainScreen.Name = "ErrorDisplay"; mainScreen.Visible = true; Sprite parentButton = mainScreen.Sprites.AddNewSprite(Vector2.Zero, Content.Load<Texture2D>("Images\\Controls\\Button")); parentButton.Position = parentButton.GetCenterPosition(GraphicsDevice.Viewport); TextSprite title = new TextSprite(spriteBatch, Content.Load<SpriteFont>("Fonts\\SegoeUIMonoBold"), "Runtime Error in PGCGame", Color.Red); title.Text += ": " + this.error.GetType().FullName; title.X = title.GetCenterPosition(GraphicsDevice.Viewport).X; title.Y = 5; mainScreen.AdditionalSprites.Add(title); TextSprite details = new TextSprite(spriteBatch, Content.Load<SpriteFont>("Fonts\\SegoeUIMono"), "Please report this error at: \nhttp://pgcgame.com/ReportError", Color.White); details.Y = title.Y + title.Font.LineSpacing; details.X = details.GetCenterPosition(GraphicsDevice.Viewport).X; mainScreen.AdditionalSprites.Add(details); TextSprite exceptMsg = new TextSprite(spriteBatch, Content.Load<SpriteFont>("Fonts\\SegoeUIMono"), error.Message, Color.White); exceptMsg.X = exceptMsg.GetCenterPosition(GraphicsDevice.Viewport).X; exceptMsg.Y = details.Y + 1 + details.Height; mainScreen.AdditionalSprites.Add(exceptMsg); TextSprite reportError = new TextSprite(spriteBatch, Content.Load<SpriteFont>("Fonts\\SegoeUIMono"), "Report Error", Color.White); reportError.IsHoverable = true; reportError.ParentSprite = parentButton; reportError.HoverColor = Color.MediumAquamarine; reportError.NonHoverColor = Color.White; reportError.Pressed += new EventHandler(reportError_Pressed); mainScreen.AdditionalSprites.Add(reportError); screenManager = new ScreenManager(spriteBatch, Color.DarkRed, mainScreen); base.LoadContent(); }
private void ErrLinkOpen(TextSprite clicked) { clicked.IsHoverable = false; clicked.Text = "Error opening website, please report manually"; clicked.ParentSprite.Visible = false; clicked.X = clicked.GetCenterPosition(GraphicsDevice.Viewport).X; }
public override void InitScreen(ScreenType screenName) { base.InitScreen(screenName); BackgroundSprite = HorizontalMenuBGSprite.CurrentBG; loadingText = new TextSprite(this.Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, _loadingText, Color.White); loadingText.Position = loadingText.GetCenterPosition(Graphics.Viewport); loadingText.TextChanged += new EventHandler(loadingText_TextChanged); AdditionalSprites.Add(loadingText); }
public override void InitScreen(ScreenType screenType) { base.InitScreen(screenType); BackgroundSprite = new Sprite(GameContent.Assets.Images.Backgrounds.Screens[ScreenBackgrounds.Credits], Vector2.Zero, Sprites.SpriteBatch); SpriteFont SegoeUIMono = GameContent.Assets.Fonts.NormalText; _scrollingSpeed = new Vector2(0, -1); Texture2D logo = GameContent.Assets.Images.Controls.Title; gameTitle = new Sprite(logo, new Vector2(0, Sprites.SpriteBatch.GraphicsDevice.Viewport.Height), Sprites.SpriteBatch); gameTitle.X = gameTitle.GetCenterPosition(Sprites.SpriteBatch.GraphicsDevice.Viewport).X; //credits = new TextSprite(Sprites.SpriteBatch, , "\n\n\n\nWeek 1 - Functional Spec, GameState Management\n //Week 3 - AI's\n\n\n\n\n\n\n\n\n\n\n\nWeek 4 - Xbox Converson\n\n\n\n\nUnderlying Library written by:\nGlen Husman (glen3b)\nGlib is available on github! \n\n\n\n\n\n\n Music:\n\nFailing Defense - Kevin MacLeod\n\nAll music obtained from Incompetech.com", Color.White); //credits = new TextSprite(Sprites.SpriteBatch, GameContent.GameAssets.Fonts.NormalText, " Plequarius: Galactic Commanders\n\n\n\n\n\nAll Developement:\nGlen Husman\n\nMinor Assistance:\nAbe", Color.White); //credits.Position = new Vector2(credits.GetCenterPosition(Sprites.SpriteBatch.GraphicsDevice.Viewport).X, Sprites.SpriteBatch.GraphicsDevice.Viewport.Height+imgSprite.Height); int lastWeekID = 0; foreach (KeyValuePair<XmlCredits.Week, XmlCredits.Student> weekStudent in _xmlCredits.Students) { int weekID = weekStudent.Key.ID; if (lastWeekID != weekID) { StringBuilder title = new StringBuilder(); title.AppendFormat("\n\n\n\nWeek {0} - ", weekID); for (int topicCounter = 0; topicCounter < weekStudent.Key.Topics.Count; topicCounter++) { KeyValuePair<int, string> topic = weekStudent.Key.Topics[topicCounter]; title.AppendFormat("{0}{1}", topic.Value, topicCounter == weekStudent.Key.Topics.Count - 1 ? "\n" : ", "); } TextSprite credit = new TextSprite(Sprites.SpriteBatch, _boldCreditsFont, title.ToString()); credit.X = credit.GetCenterPosition(Sprites.SpriteBatch.GraphicsDevice.Viewport).X; credit.Color = Color.White; if (credits.Count == 0) { credit.Y = gameTitle.Y + gameTitle.Height; } else { credit.Y = credits[credits.Count - 1].Y + credits[credits.Count - 1].Height + (_creditsFont.LineSpacing - _creditsFont.MeasureString("A").Y); } credits.Add(credit); lastWeekID = weekID; } TextSprite student = new TextSprite(Sprites.SpriteBatch, _creditsFont, String.Format("{0} {1}\n", weekStudent.Value.FirstName, weekStudent.Value.LastName)); student.X = student.GetCenterPosition(Sprites.SpriteBatch.GraphicsDevice.Viewport).X; student.Color = Color.White; student.Y = credits[credits.Count - 1].Y + credits[credits.Count - 1].Height + (_creditsFont.LineSpacing - _creditsFont.MeasureString("A").Y); credits.Add(student); } TextSprite helperLabel = new TextSprite(Sprites.SpriteBatch, _boldCreditsFont, "\n\n\n\nHelpers\n", Color.White); helperLabel.X = helperLabel.GetCenterPosition(Sprites.SpriteBatch.GraphicsDevice.Viewport).X; helperLabel.Y = credits[credits.Count - 1].Y + credits[credits.Count - 1].Height + (_creditsFont.LineSpacing - _creditsFont.MeasureString("A").Y); credits.Add(helperLabel); foreach (PGCGame.Xml.XmlTypes.XmlCredits.Helper assistant in _xmlCredits.AllHelpers) { float targetY = credits[credits.Count - 1].Y + credits[credits.Count - 1].Height + (_creditsFont.LineSpacing - _creditsFont.MeasureString("A").Y); TextSprite name = new TextSprite(Sprites.SpriteBatch, new Vector2(0, targetY), _boldCreditsFont, assistant.FullName, Color.White); TextSprite job = new TextSprite(Sprites.SpriteBatch, new Vector2(0, targetY+name.Font.LineSpacing), _creditsFont, assistant.Job+"\n", Color.White); name.X = name.GetCenterPosition(Graphics.Viewport).X; job.X = job.GetCenterPosition(Graphics.Viewport).X; credits.Add(name); credits.Add(job); } //The IEnumerable cast method AdditionalSprites.AddRange(credits.Cast<IDrawableComponent>()); Sprites.Add(gameTitle); _elapsedTime = TimeSpan.Zero; }
public override void InitScreen(ScreenType screenName) { Sprites.Clear(); AdditionalSprites.Clear(); _firstInit = true; gamerInfos = null; GamerInfos.Clear(); SelectedShips.Clear(); base.InitScreen(screenName); BackgroundSprite = HorizontalMenuBGSprite.CurrentBG; title = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.BoldText, StateManager.NetworkData.SessionMode.ToFriendlyString() + " Lobby", Color.White); title.Y = 5; title.X = title.GetCenterPosition(Graphics.Viewport).X; AdditionalSprites.Add(title); StartButton = new Sprite(GameContent.Assets.Images.Controls.Button, new Vector2(0, Graphics.Viewport.Height), Sprites.SpriteBatch); StartButton.X = StartButton.GetCenterPosition(Graphics.Viewport).X; StartButton.Y -= StartButton.Height + 20; StartLabel = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, "Start", Color.White) { ParentSprite = StartButton, IsHoverable = true, HoverColor = Color.MediumAquamarine, NonHoverColor = Color.White }; StartLabel.Pressed += new EventHandler(StartLabel_Pressed); StartButton.Visible = false; StartLabel.Visible = false; Sprites.Add(StartButton); AdditionalSprites.Add(StartLabel); #if XBOX AllButtons = new GamePadButtonEnumerator(new TextSprite[,] { { StartLabel } }, InputType.LeftJoystick); AllButtons.FireTextSpritePressed = true; #endif }
void StateManager_ScreenStateChanged(object sender, EventArgs e) { if (Visible) { title.Text = StateManager.NetworkData.SessionMode.ToFriendlyString() + " Lobby"; title.X = title.GetCenterPosition(Graphics.Viewport).X; if (_firstInit) { gamerInfos = new TextSprite[StateManager.NetworkData.CurrentSession.MaxGamers]; GamerInfos.Clear(); for (int i = 0; i < StateManager.NetworkData.CurrentSession.MaxGamers; i++) { string text = ""; bool visible = false; if (i < StateManager.NetworkData.CurrentSession.AllGamers.Count) { if (StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal) { SelectedShips.Add(StateManager.NetworkData.CurrentSession.AllGamers[i].Id, new ShipStats() { Type = StateManager.NetworkData.SelectedNetworkShip.Type, Tier = ShipTier.Tier2 }); if (SelectedShips[StateManager.NetworkData.CurrentSession.AllGamers[i].Id].Type == ShipType.NoShip) { SelectedShips[StateManager.NetworkData.CurrentSession.AllGamers[i].Id] = new ShipStats() { Tier = ShipTier.NoShip, Type = ShipType.NoShip }; } } text = string.Format("{0} - {1}{2}{3}", StateManager.NetworkData.CurrentSession.AllGamers[i].Gamertag, StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal ? StateManager.NetworkData.SelectedNetworkShip.Type.ToFriendlyString() : "No ship", StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal ? StateManager.NetworkData.SelectedNetworkShip.Type == ShipType.NoShip ? "" : ", " : "", StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal ? StateManager.NetworkData.SelectedNetworkShip.Type == ShipType.NoShip ? "" : ShipTier.Tier2.ToFriendlyString().ToLower() : ""); visible = true; } TextSprite gamerInfo = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, text, Color.White); gamerInfo.Y = i == 0 ? title.Y + title.Height + 10 : gamerInfos[i - 1].Y + gamerInfos[i - 1].Height + 5; gamerInfo.X = gamerInfo.GetCenterPosition(Graphics.Viewport).X; gamerInfo.Visible = visible; AdditionalSprites.Add(gamerInfo); gamerInfos[i] = gamerInfo; if (i < StateManager.NetworkData.CurrentSession.AllGamers.Count) { GamerInfos.Add(StateManager.NetworkData.CurrentSession.AllGamers[i].Id, gamerInfo); } } foreach (NetworkGamer ng in StateManager.NetworkData.CurrentSession.AllGamers) { if (!SelectedShips.ContainsKey(ng.Id)) { SelectedShips.Add(ng.Id, new ShipStats() { Type = ShipType.NoShip, Tier = ShipTier.NoShip }); } } StateManager.NetworkData.CurrentSession.GamerLeft += new EventHandler<GamerLeftEventArgs>(CurrentSession_GamerLeft); StateManager.NetworkData.CurrentSession.GamerJoined += new EventHandler<GamerJoinedEventArgs>(CurrentSession_GamerJoined); StateManager.NetworkData.CurrentSession.GameStarted += new EventHandler<GameStartedEventArgs>(CurrentSession_GameStarted); } _firstInit = false; } }
void CurrentSession_GamerJoined(object sender, GamerJoinedEventArgs e) { if (Gamer.SignedInGamers[PlayerIndex.One].Privileges.AllowCommunication != GamerPrivilegeSetting.Everyone) { if (Gamer.SignedInGamers[PlayerIndex.One].Privileges.AllowCommunication == GamerPrivilegeSetting.Blocked || (Gamer.SignedInGamers[PlayerIndex.One].Privileges.AllowCommunication == GamerPrivilegeSetting.FriendsOnly && !Gamer.SignedInGamers[PlayerIndex.One].IsFriend(e.Gamer))) { StateManager.NetworkData.CurrentSession.LocalGamers[0].EnableSendVoice(e.Gamer, false); } } GamerInfos.Clear(); for (int i = 0; i < StateManager.NetworkData.CurrentSession.MaxGamers; i++) { if (gamerInfos[i] != null) { AdditionalSprites.Remove(gamerInfos[i]); } string text = ""; bool visible = false; if (i < StateManager.NetworkData.CurrentSession.AllGamers.Count) { if (StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal) { SelectedShips.Remove(StateManager.NetworkData.CurrentSession.AllGamers[i].Id); SelectedShips.Add(StateManager.NetworkData.CurrentSession.AllGamers[i].Id, new ShipStats() { Type = StateManager.NetworkData.SelectedNetworkShip.Type, Tier = ShipTier.Tier2 }); if (SelectedShips[StateManager.NetworkData.CurrentSession.AllGamers[i].Id].Type == ShipType.NoShip) { SelectedShips[StateManager.NetworkData.CurrentSession.AllGamers[i].Id] = new ShipStats() { Tier = ShipTier.NoShip, Type = ShipType.NoShip }; } } text = string.Format("{0} - {1}{2}{3}", StateManager.NetworkData.CurrentSession.AllGamers[i].Gamertag, StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal ? StateManager.NetworkData.SelectedNetworkShip.Type.ToFriendlyString() : "No ship", StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal ? StateManager.NetworkData.SelectedNetworkShip.Type == ShipType.NoShip ? "" : ", " : "", StateManager.NetworkData.CurrentSession.AllGamers[i].IsLocal ? StateManager.NetworkData.SelectedNetworkShip.Type == ShipType.NoShip ? "" : ShipTier.Tier2.ToFriendlyString().ToLower() : ""); visible = true; } TextSprite gamerInfo = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, text, Color.White); gamerInfo.Y = i == 0 ? title.Y + title.Height + 10 : gamerInfos[i - 1].Y + gamerInfos[i - 1].Height + 5; gamerInfo.X = gamerInfo.GetCenterPosition(Graphics.Viewport).X; gamerInfo.Visible = visible; AdditionalSprites.Add(gamerInfo); gamerInfos[i] = gamerInfo; if (i < StateManager.NetworkData.CurrentSession.AllGamers.Count) { GamerInfos.Add(StateManager.NetworkData.CurrentSession.AllGamers[i].Id, gamerInfo); } } foreach (NetworkGamer ng in StateManager.NetworkData.CurrentSession.AllGamers) { if (!SelectedShips.ContainsKey(ng.Id)) { SelectedShips.Add(ng.Id, new ShipStats() { Type = ShipType.NoShip, Tier = ShipTier.NoShip }); } } if (!e.Gamer.IsLocal) { StateManager.NetworkData.DataWriter.Write(StateManager.NetworkData.SelectedNetworkShip.Type.ToString()); foreach (LocalNetworkGamer g in StateManager.NetworkData.CurrentSession.LocalGamers) { g.SendData(StateManager.NetworkData.DataWriter, SendDataOptions.Reliable); } } }
public override void InitScreen(ScreenType screenName) { base.InitScreen(screenName); BackgroundSprite = HorizontalMenuBGSprite.CurrentBG; TitleLabel = new TextSprite(Sprites.SpriteBatch, new Vector2(0, 5), GameContent.Assets.Fonts.BoldText, "Select Match Type", Color.White); TitleLabel.X = TitleLabel.GetCenterPosition(Graphics.Viewport).X; AdditionalSprites.Add(TitleLabel); CoopButton = new Sprite(GameContent.Assets.Images.Controls.Button, new Vector2(0, 10 + TitleLabel.Height), Sprites.SpriteBatch); CoopButton.X = CoopButton.GetCenterPosition(Graphics.Viewport).X; CoopLabel = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, "Co-op", Color.White); CoopLabel.HoverColor = Color.MediumAquamarine; CoopLabel.NonHoverColor = Color.White; CoopLabel.IsHoverable = true; CoopLabel.ParentSprite = CoopButton; CoopLabel.Pressed += StateManager.ButtonSFXHelper; CoopLabel.Pressed += new EventHandler(CoopLabel_Pressed); Sprites.Add(CoopButton); AdditionalSprites.Add(CoopLabel); LMS = new Sprite(GameContent.Assets.Images.Controls.Button, new Vector2(0, 20 + CoopLabel.Height + CoopLabel.Y), Sprites.SpriteBatch); LMS.X = CoopButton.GetCenterPosition(Graphics.Viewport).X; LMSLabel = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, "LMS", Color.White); LMSLabel.HoverColor = Color.MediumAquamarine; LMSLabel.NonHoverColor = Color.White; LMSLabel.IsHoverable = true; LMSLabel.ParentSprite = LMS; LMSLabel.Pressed += StateManager.ButtonSFXHelper; LMSLabel.Pressed += new EventHandler(DeathMatchLabel_Pressed); Sprites.Add(LMS); AdditionalSprites.Add(LMSLabel); TDM = new Sprite(GameContent.Assets.Images.Controls.Button, new Vector2(0, 20 + LMSLabel.Height + LMSLabel.Y), Sprites.SpriteBatch); TDM.X = LMS.GetCenterPosition(Graphics.Viewport).X; TDMLabel = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, "Team Deathmatch", Color.White); TDMLabel.HoverColor = Color.MediumAquamarine; TDMLabel.NonHoverColor = Color.White; TDMLabel.IsHoverable = true; TDMLabel.ParentSprite = TDM; TDMLabel.Pressed += StateManager.ButtonSFXHelper; TDMLabel.Pressed += new EventHandler(TDMLabel_Pressed); Sprites.Add(TDM); AdditionalSprites.Add(TDMLabel); BackButton = new Sprite(GameContent.Assets.Images.Controls.Button, new Vector2(0, 0), Sprites.SpriteBatch); BackButton.X = BackButton.GetCenterPosition(Graphics.Viewport).X; BackButton.Y = StateManager.GraphicsManager.GraphicsDevice.Viewport.Height - 50 - BackButton.Height; BackLabel = new TextSprite(Sprites.SpriteBatch, GameContent.Assets.Fonts.NormalText, "Back", Color.White); BackLabel.HoverColor = Color.MediumAquamarine; BackLabel.NonHoverColor = Color.White; BackLabel.IsHoverable = true; BackLabel.ParentSprite = BackButton; BackLabel.Pressed += StateManager.ButtonSFXHelper; BackLabel.Pressed += new EventHandler(BackLabel_Pressed); Sprites.Add(BackButton); AdditionalSprites.Add(BackLabel); #if XBOX AllButtons = new GamePadButtonEnumerator(new TextSprite[,] { { CoopLabel }, { LMSLabel }, { TDMLabel }, { BackLabel } }, InputType.LeftJoystick); AllButtons.FireTextSpritePressed = true; #endif }
public override void InitScreen(ScreenType screenName) { base.InitScreen(screenName); StateManager.Options.ScreenResolutionChanged += new EventHandler<ViewportEventArgs>(Options_ScreenResolutionChanged); Texture2D buttonImage = GameContent.Assets.Images.Controls.Button; SpriteFont SegoeUIMono = GameContent.Assets.Fonts.NormalText; //Configure backgrounds BackgroundSprite = HorizontalMenuBGSprite.CurrentBG; Sprites.AddNewSprite(Vector2.Zero, GameContent.Assets.Images.NonPlayingObjects.ShopBackground); Sprites[0].Scale = new Vector2((float)StateManager.GraphicsManager.GraphicsDevice.Viewport.Width / (float)Sprites[0].Texture.Width, (float)StateManager.GraphicsManager.GraphicsDevice.Viewport.Height / (float)Sprites[0].Texture.Height); upgradeEquipmentButton = new Sprite(buttonImage, new Vector2(Sprites.SpriteBatch.GraphicsDevice.Viewport.Width * .1f, Sprites.SpriteBatch.GraphicsDevice.Viewport.Height * .4f), Sprites.SpriteBatch); upgradeEquipmentLabel = new TextSprite(Sprites.SpriteBatch, Vector2.Zero, SegoeUIMono, "Equipment"); upgradeEquipmentLabel.Color = Color.White; upgradeEquipmentLabel.IsHoverable = true; upgradeEquipmentLabel.ParentSprite = upgradeEquipmentButton; upgradeEquipmentLabel.NonHoverColor = Color.White; upgradeEquipmentLabel.HoverColor = Color.MediumAquamarine; Sprites.Add(upgradeEquipmentButton); AdditionalSprites.Add(upgradeEquipmentLabel); shipButton = new Sprite(buttonImage, new Vector2(Sprites.SpriteBatch.GraphicsDevice.Viewport.Width * .4f, Sprites.SpriteBatch.GraphicsDevice.Viewport.Height * .4f), Sprites.SpriteBatch); shipLabel = new TextSprite(Sprites.SpriteBatch, Vector2.Zero, SegoeUIMono, "Ship"); shipLabel.Color = Color.White; shipLabel.IsHoverable = true; shipLabel.ParentSprite = shipButton; shipLabel.NonHoverColor = Color.White; shipLabel.HoverColor = Color.MediumAquamarine; Sprites.Add(shipButton); AdditionalSprites.Add(shipLabel); weaponsButton = new Sprite(buttonImage, new Vector2(Sprites.SpriteBatch.GraphicsDevice.Viewport.Width * .7f, Sprites.SpriteBatch.GraphicsDevice.Viewport.Height * .4f), Sprites.SpriteBatch); weaponsLabel = new TextSprite(Sprites.SpriteBatch, Vector2.Zero, SegoeUIMono, "Weapons"); weaponsLabel.ParentSprite = weaponsButton; weaponsLabel.Color = Color.White; weaponsLabel.IsHoverable = true; weaponsLabel.NonHoverColor = Color.White; weaponsLabel.HoverColor = Color.MediumAquamarine; Sprites.Add(weaponsButton); AdditionalSprites.Add(weaponsLabel); PlayButton = new Sprite(buttonImage, new Vector2(Sprites.SpriteBatch.GraphicsDevice.Viewport.Width * .4f, Sprites.SpriteBatch.GraphicsDevice.Viewport.Height * .65f), Sprites.SpriteBatch); PlayLabel = new TextSprite(Sprites.SpriteBatch, Vector2.Zero, SegoeUIMono, "Play"); PlayLabel.Color = Color.White; PlayLabel.IsHoverable = true; PlayLabel.ParentSprite = PlayButton; PlayLabel.NonHoverColor = Color.White; PlayLabel.HoverColor = Color.MediumAquamarine; noShipLabel = new TextSprite(Sprites.SpriteBatch, new Vector2(0, PlayLabel.Y), SegoeUIMono, "You must buy a ship"); noShipLabel.Color = Color.White; noShipLabel.X = noShipLabel.GetCenterPosition(Graphics.Viewport).X; noShipLabel.TextChanged += new EventHandler(noShipLabel_TextChanged); Sprites.Add(PlayButton); AdditionalSprites.Add(noShipLabel); AdditionalSprites.Add(PlayLabel); PlayLabel.Pressed += new EventHandler(nextLevelLabel_Pressed); weaponsLabel.Pressed += new EventHandler(weaponsLabel_Pressed); upgradeEquipmentLabel.Pressed += new EventHandler(upgradeEquipmentLabel_Pressed); shipLabel.Pressed += new EventHandler(shipLabel_Pressed); #if XBOX AllButtons = new GamePadButtonEnumerator(new TextSprite[,] { {upgradeEquipmentLabel, shipLabel, weaponsLabel}, {null, PlayLabel, null} }, InputType.LeftJoystick); AllButtons.FireTextSpritePressed = true; #endif }