protected override void Initialize() { gameMode = Settings.UserSettings.LastGameMode; FullScreen = true; Background = Contents.Sprites.Game_Background; GameObject lastObj; var playingArenaPadding = 16; hider = new ObjectHider(this) { HideTimePeriod = 350 }; Objects.Add(hider); // ADDING FIRST PANEL // PANEL BACKGROUND Objects.Add(new GameObject(this) { Size = new Vector2(712, 132), Position = new Vector2(4, 4), SpriteImage = Contents.Sprites.GameUI_top_background, LayerDepth = 0.02f }); lastObj = Objects.Last(); hider.HideObject(Objects.Last(), HidePlace.Top); var playingArenaStart = lastObj.Position.Y + lastObj.Size.Y + playingArenaPadding; // ACTOR VIEWER var viewerPos = new Vector2(lastObj.Position.X + 16, lastObj.Position.Y + 16); var viewerSize = new Vector2(116, 100); Objects.Add(new DynamicBackgroundObject(this, Contents.Sprites.Dialog_inside, 4) { Size = viewerSize, Position = viewerPos, LayerDepth = 0.045f }); hider.HideObject(Objects.Last(), HidePlace.Top); actorViewer = new ActorViewer(this, viewerSize, Contents.Colors.ActorViewerBackgroundColor) { Position = viewerPos, LayerDepth = 0.05f }; Objects.Add(actorViewer); hider.HideObject(Objects.Last(), HidePlace.Top); var btnPauseSize = new Vector2(116, 100); // PAUSE BUTTON btnPause = Bank.Buttons.GetPlainButton(this); btnPause.SpriteImage = Contents.Sprites.Button_pause; btnPause.Size = btnPauseSize; btnPause.Position = new Vector2(lastObj.Position.X + lastObj.Size.X - btnPauseSize.X - 16, lastObj.Position.Y + 16); btnPause.Click += btnPause_Click; Objects.Add(btnPause); hider.HideObject(Objects.Last(), HidePlace.Top); // SETTINGS var lblScoreSize = new Vector2(416, 40); var lblLevelSize = new Vector2(416, 24); var scoreLineSize = new Vector2(284, 4); // SCORE lblScore = new BreathingObject(this) { Size = lblScoreSize, Position = new Vector2(148, lastObj.Position.Y + 24), TextSpriteFont = Contents.Fonts.PixelArtTextFont, Text = Constants.Texts.Score, TextHeight = (int)lblScoreSize.Y, TextAlignment = TextAlignment.Center, TextColor = Color.White, ShowText = true, LayerDepth = 0.05f, MaxScale = 1.1f, MinScale = 1f, TimerLimit = 200, Timer = 0, Loop = false, IsPaused = true, StartTextColor = Color.White, EndTextColor = Color.Red }; Objects.Add(lblScore); hider.HideObject(Objects.Last(), HidePlace.Top); // LINE BETWEEN SCORE AND LEVEL Objects.Add(new GameObject(this) { SpriteImage = Contents.Sprites.Pix, BaseColor = Color.White, Size = scoreLineSize, Position = new Vector2(148 + (416 - scoreLineSize.X) / 2, lastObj.Position.Y + 72), LayerDepth = 0.05f }); hider.HideObject(Objects.Last(), HidePlace.Top); // LEVEL lblLevel = new BreathingObject(this) { Size = lblLevelSize, Position = new Vector2(148, lastObj.Position.Y + 88), TextSpriteFont = Contents.Fonts.PixelArtTextFont, Text = Constants.Texts.Level, TextHeight = (int)lblLevelSize.Y, TextAlignment = TextAlignment.Center, TextColor = Color.White, ShowText = true, LayerDepth = 0.05f, MaxScale = 1.1f, MinScale = 1f, TimerLimit = 500, Timer = 0, Loop = false, IsPaused = true, StartTextColor = Color.White, EndTextColor = Color.Red }; Objects.Add(lblLevel); hider.HideObject(Objects.Last(), HidePlace.Top); // ADDING SECOND PANEL // SETTINGS var btnSize = new Vector2(152, 112); // PANEL BACKGROUND float playingArenaEndY = 0; float controlButtonsStartY = 0; if (gameMode == SettingOptions.GameMode.Classic) { Objects.Add(new GameObject(this) { Size = new Vector2(712, 144), Position = new Vector2(4, Size.Y - 144 - 4), SpriteImage = Contents.Sprites.GameUI_bottom_classic_background, LayerDepth = 0.02f }); lastObj = Objects.Last(); hider.HideObject(Objects.Last(), HidePlace.Bottom); playingArenaEndY = lastObj.Position.Y - playingArenaPadding; controlButtonsStartY = lastObj.Position.Y + 16; } else { Objects.Add(new GameObject(this) { Size = new Vector2(712, 224), Position = new Vector2(4, Size.Y - 224 - 4), SpriteImage = Contents.Sprites.GameUI_bottom_normal_background, LayerDepth = 0.02f }); lastObj = Objects.Last(); hider.HideObject(Objects.Last(), HidePlace.Bottom); playingArenaEndY = lastObj.Position.Y - playingArenaPadding; controlButtonsStartY = lastObj.Position.Y + 96; // ADDING BONUS PANEL pnlBonusBtns = new GameObject(this) { Size = new Vector2(680, 60), Position = new Vector2(lastObj.Position.X + 16, lastObj.Position.Y + 16), LayerDepth = 0.02f, //SpriteImage = Contents.Sprites.Pix, //BaseColor = Color.Red }; Objects.Add(pnlBonusBtns); hider.HideObject(Objects.Last(), HidePlace.Bottom); bonusObjs = new List <GameObject>(); } // CONTROL BUTTON LEFT btnControlLeft = Bank.Buttons.GetPlainButton(this); btnControlLeft.SpriteImage = Contents.Sprites.ControlButton_left; btnControlLeft.Size = btnSize; btnControlLeft.Position = new Vector2(lastObj.Position.X + 16, controlButtonsStartY); btnControlLeft.Release += btnLeft_Release; btnControlLeft.Hover += btnLeft_Hover; Objects.Add(btnControlLeft); hider.HideObject(Objects.Last(), HidePlace.Bottom); // CONTROL BUTTON FALL btnControlFall = Bank.Buttons.GetPlainButton(this); btnControlFall.SpriteImage = Contents.Sprites.ControlButton_fall; btnControlFall.Size = btnSize; btnControlFall.Position = new Vector2(lastObj.Position.X + 192, controlButtonsStartY); btnControlFall.Click += btnDown_Click; btnControlFall.Hover += btnDown_Hover; btnControlFall.Release += btnDown_Release; Objects.Add(btnControlFall); hider.HideObject(Objects.Last(), HidePlace.Bottom); // CONTROL BUTTON ROTATE btnControlRotate = Bank.Buttons.GetPlainButton(this); btnControlRotate.SpriteImage = Contents.Sprites.ControlButton_rotate; btnControlRotate.Size = btnSize; btnControlRotate.Position = new Vector2(lastObj.Position.X + 368, controlButtonsStartY); btnControlRotate.Click += btnRotate_Click; Objects.Add(btnControlRotate); hider.HideObject(Objects.Last(), HidePlace.Bottom); // CONTROL BUTTON RIGHT btnControlRight = Bank.Buttons.GetPlainButton(this); btnControlRight.SpriteImage = Contents.Sprites.ControlButton_right; btnControlRight.Size = btnSize; btnControlRight.Position = new Vector2(lastObj.Position.X + 544, controlButtonsStartY); btnControlRight.Release += btnRight_Release; btnControlRight.Hover += btnRight_Hover; Objects.Add(btnControlRight); hider.HideObject(Objects.Last(), HidePlace.Bottom); // ADDING PLAYING ARENA var arenaSize = new Vector2(Size.X - 2 * playingArenaPadding, playingArenaEndY - playingArenaStart); var arenaPosition = new Vector2(playingArenaPadding, playingArenaStart); switch (gameMode) { case GameMode.Classic: { arena = new PlayingArena_Classic(this, arenaSize, arenaPosition); } break; case GameMode.Normal: { arena = new PlayingArena_Normal(this, arenaSize, arenaPosition); (arena as PlayingArena_Normal).AvailableBonusesChanged += Arena_AvailableBonusesChanged; (arena as PlayingArena_Normal).ActiveBonusChanged += Arena_ActiveBonusChanged; } break; case GameMode.Extreme: { arena = new PlayingArena_Extreme(this, arenaSize, arenaPosition); (arena as PlayingArena_Extreme).AvailableBonusesChanged += Arena_AvailableBonusesChanged; (arena as PlayingArena_Extreme).ActiveBonusChanged += Arena_ActiveBonusChanged; } break; } arena.LayerDepth = 0.05f; arena.ActorsQueueChanged += Arena_ActorsQueueChanged; arena.ScoreChanged += Arena_ScoreChanged; arena.GameEnded += Arena_GameEnded; arena.StartNewGame(); Objects.Add(arena); hider.HideObject(Objects.Last(), HidePlace.Bottom); // adding border for arena var borderOffset = new Vector2(12); Objects.Add(new DynamicBackgroundObject(this, Contents.Sprites.GameUI_playingArena_border, 4) { Position = new Vector2(arena.Position.X - borderOffset.X, arena.Position.Y - borderOffset.Y), Size = new Vector2(arena.Size.X + 2 * borderOffset.X, arena.Size.Y + 2 * borderOffset.Y), LayerDepth = 0.051f }); hider.HideObject(Objects.Last(), HidePlace.Bottom); //// ADDING STAR SYSTEM //// Objects.Add(new StarSystem(this, new Vector2(680, 1200), new Vector2(20, 40))); lastObj = Objects.Last(); lastObj.LayerDepth = 0.019f; (lastObj as StarSystem).Start(218884, 1, 3, 3, 5, 15); (lastObj as StarSystem).MaxTimer = 5000; (lastObj as StarSystem).Alpha = 0.8f; hider.AllHidden += Hider_AllHidden; hider.AllShown += Hider_AllShown; hider.Hide(false); }
protected override void Initialize() { FullScreen = true; Background = Contents.Sprites.Game_Background; selectebleGameModes = availableGameModes.ToList(); // fill modes that i can select from SelectedGameMode = selectebleGameModes[selectebleGameModes.FindIndex(mode => mode == GameMode.Normal)]; GameObject objToAdd; var padding = 30; var btnSize = new Vector2(Size.X - 2 * padding, 75); var btnTextSize = (int)(btnSize.Y * 0.45f); var btnPadding = 35; var btnCount = 4; var btnStartPosY = (Size.Y - ((btnCount * btnSize.Y) + ((btnCount - 1) * btnPadding))) / 2; hider = new ObjectHider(this) { HideTimePeriod = 500 }; Objects.Add(hider); ////// ADDING BUTTONS ////// //// EXIT BUTTON //// //var btnPauseSize = 100; //objToAdd = Bank.Buttons.GetPlainButtonWithText(this); //objToAdd.SpriteImage = Contents.Sprites.Button_exit; //objToAdd.Size = new Vector2(btnPauseSize); //objToAdd.Position = new Vector2(15, 15); //(objToAdd as Button).Click += btnFinish_Click; //Objects.Add(objToAdd); //hider.HideObject(objToAdd, HidePlace.Top); var nameSize = new Vector2(Size.X - 15, 25); objToAdd = new GameObject(this) { Size = nameSize, Position = new Vector2(0, 15), TextSpriteFont = Contents.Fonts.PixelArtTextFont, Text = Constants.Texts.Creator, TextColor = Color.White, TextHeight = (int)(nameSize.Y * 0.8f), TextAlignment = TextAlignment.Right, ShowText = true, LayerDepth = 0.05f, }; Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Top); //// PLAY BUTTON //// var playButtonSize = new Vector2(280, 180); objToAdd = Bank.Buttons.GetPlainButtonWithText(this); objToAdd.SpriteImage = Contents.Sprites.Button_play; objToAdd.Size = playButtonSize; objToAdd.Position = new Vector2((Size.X - objToAdd.Size.X) / 2, Size.Y - objToAdd.Size.Y - padding); (objToAdd as Button).Click += btnPlayGame_Click; Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Bottom); var playButtonsPosition = objToAdd.Position; var sideButtonsSize = new Vector2(136, 112); //// SETTINGS BUTTON //// objToAdd = Bank.Buttons.GetPlainButtonWithText(this); objToAdd.SpriteImage = Contents.Sprites.Button_settings; objToAdd.Size = sideButtonsSize; objToAdd.Position = new Vector2((playButtonsPosition.X - sideButtonsSize.X) / 2, playButtonsPosition.Y + (playButtonSize.Y - sideButtonsSize.Y) / 2); (objToAdd as Button).Click += btnSettings_Click; Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Left); var offset = playButtonsPosition.X + playButtonSize.X; //// HIGHSCORE BUTTON //// objToAdd = Bank.Buttons.GetPlainButtonWithText(this); objToAdd.SpriteImage = Contents.Sprites.Button_highscore; objToAdd.Size = sideButtonsSize; objToAdd.Position = new Vector2(offset + (Size.X - offset - sideButtonsSize.X) / 2, playButtonsPosition.Y + (playButtonSize.Y - sideButtonsSize.Y) / 2); (objToAdd as Button).Click += btnHighscore_click; Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Right); var gamemodeTextSize = 45; //// GAMEMODE LABEL //// lblSelectedGameMode = new GameObject(this); lblSelectedGameMode.Size = new Vector2(Size.X, gamemodeTextSize); lblSelectedGameMode.Position = new Vector2(0, playButtonsPosition.Y - 4 * padding - lblSelectedGameMode.Size.Y); lblSelectedGameMode.LayerDepth = 0.04f; lblSelectedGameMode.Alpha = 1f; lblSelectedGameMode.TextSpriteFont = Contents.Fonts.PixelArtTextFont; lblSelectedGameMode.TextAlignment = TextAlignment.Center; lblSelectedGameMode.TextHeight = gamemodeTextSize; lblSelectedGameMode.ShowText = true; lblSelectedGameMode.TextColor = Color.White; lblSelectedGameMode.Text = selectedGameMode.ToString().ToUpper(); Objects.Add(lblSelectedGameMode); hider.HideObject(lblSelectedGameMode, HidePlace.Bottom); var modeLabelTextSize = 23; //// MODE LABEL //// objToAdd = new GameObject(this); objToAdd.Size = new Vector2(Size.X, modeLabelTextSize); objToAdd.Position = new Vector2(0, lblSelectedGameMode.Position.Y - 2 * padding - objToAdd.Size.Y); objToAdd.LayerDepth = 0.04f; objToAdd.Alpha = 1f; objToAdd.TextSpriteFont = Contents.Fonts.PixelArtTextFont; objToAdd.TextAlignment = TextAlignment.Center; objToAdd.TextHeight = modeLabelTextSize; objToAdd.ShowText = true; objToAdd.TextColor = Color.White; objToAdd.Text = Constants.Texts.SelectGame; Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Bottom); var arrowButtonsSize = new Vector2(60, 112); //// SELECT LEFT GAMEMODE BUTTON //// objToAdd = Bank.Buttons.GetPlainButtonWithText(this); objToAdd.SpriteImage = Contents.Sprites.Button_left; objToAdd.Size = arrowButtonsSize; objToAdd.Position = new Vector2(padding, lblSelectedGameMode.Position.Y + (lblSelectedGameMode.Size.Y - arrowButtonsSize.Y) / 2); (objToAdd as Button).Click += btnSelectLeft_Click; Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Left); //// SELECT RIGHT GAMEMODE BUTTON //// objToAdd = Bank.Buttons.GetPlainButtonWithText(this); objToAdd.SpriteImage = Contents.Sprites.Button_right; objToAdd.Size = arrowButtonsSize; objToAdd.Position = new Vector2(Size.X - padding - arrowButtonsSize.X, lblSelectedGameMode.Position.Y + (lblSelectedGameMode.Size.Y - arrowButtonsSize.Y) / 2); (objToAdd as Button).Click += btnSelectRight_Click; Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Right); //// ADDING STAR SYSTEM //// //objToAdd = new StarSystem(this, new Vector2(720, 664), new Vector2(0, 40)); objToAdd = new StarSystem(this, new Vector2(680, 1200), new Vector2(20, 40)); objToAdd.LayerDepth = 0.039f; (objToAdd as StarSystem).Start(218884, 1, 3, 3, 5, 15); Objects.Add(objToAdd); //// ADDING LOGO //// var logo = new BreathingObject(this) { SpriteImage = Contents.Sprites.Logo, Position = new Vector2(0, 140), Size = new Vector2(720, 256), LayerDepth = 0.05f, MaxScale = 1f, MinScale = 0.9f, TimerLimit = 5000, Timer = 2500 }; Objects.Add(logo); hider.HideObject(logo, HidePlace.Top); objToAdd = Bank.Buttons.GetPlainButton(this); objToAdd.Alpha = 0f; objToAdd.Position = new Vector2(0, 140); objToAdd.Size = new Vector2(720, 256); (objToAdd as Button).Click += ((sender, e) => { logo.BreathIn(); }); Objects.Add(objToAdd); hider.HideObject(objToAdd, HidePlace.Top); hider.Hide(false); hider.AllHidden += Hider_AllHidden; //// ADDING TAP START BUTTON //// btnTapToStart = Bank.Buttons.GetPlainButtonWithText(this); btnTapToStart.Position = new Vector2(0, 0); btnTapToStart.Size = this.Size; btnTapToStart.Alpha = 0f; btnTapToStart.Click += TapStartButton_Click; btnTapToStart.Hover += TapStartButton_Click; Objects.Add(btnTapToStart); tapToStart = new BreathingObject(this) { Position = new Vector2(0, Size.Y / 2), Size = new Vector2(Size.X, Size.Y / 2), TextSpriteFont = Contents.Fonts.PixelArtTextFont, Text = Constants.Texts.TapToStart, TextColor = new Color(252, 239, 0), TextHeight = 50, TextAlignment = TextAlignment.Center, ShowText = true, LayerDepth = 0.05f, MaxScale = 1f, MinScale = 0.8f, MaxAlpha = 1f, MinAlpha = 0.4f, TimerLimit = 4000, Timer = 2000, }; Objects.Add(tapToStart); }
private void RefreshBonusButtons(List <GameBonus> newBonuses) { // remove old bonus buttons foreach (var obj in bonusObjs) { Objects.Remove(obj); hider.Clear(obj); } bonusObjs.Clear(); // add new bonus buttons var btnBonusSize = new Vector2(160, 60); var btnBonusTextHeight = (int)(btnBonusSize.Y * 0.35f); var btnMargin = (pnlBonusBtns.Size.X - (newBonuses.Count * btnBonusSize.X)) / (newBonuses.Count + 1); var i = 0; foreach (var bonus in newBonuses) { if (bonus.Type != BonusType.None && bonus.Progress >= 100) { var btn = Bank.Buttons.GetBasicButton(this); btn.Enabled = bonus.Enabled; btn.Name = "BonusButton_" + i.ToString(); btn.Size = btnBonusSize; btn.Position = new Vector2(pnlBonusBtns.Position.X + btnMargin + i * (btnBonusSize.X + btnMargin), pnlBonusBtns.Position.Y); btn.SpriteImage = Contents.Sprites.Button_bonus; //btn.LayerDepth = 0.052f; btn.TextHeight = btnBonusTextHeight; btn.Text = bonus.SpecialText; btn.Data = newBonuses[i]; btn.Click += Btn_Click; Objects.Add(btn); bonusObjs.Add(btn); hider.HideObject(Objects.Last(), HidePlace.Bottom); } else { var btnBack = new GameObject(this) { Size = btnBonusSize, Position = new Vector2(pnlBonusBtns.Position.X + btnMargin + i * (btnBonusSize.X + btnMargin), pnlBonusBtns.Position.Y), SpriteImage = Contents.Sprites.Pix, BaseColor = new Color(11, 42, 96), LayerDepth = 0.05f, TextSpriteFont = Contents.Fonts.PixelArtTextFont, TextColor = new Color(44, 110, 224), TextHeight = btnBonusTextHeight, TextAlignment = TextAlignment.Center, Text = bonus.Progress.ToString() + "%", ShowText = true, }; Objects.Add(btnBack); bonusObjs.Add(btnBack); hider.HideObject(Objects.Last(), HidePlace.Bottom); } i++; } }