Ejemplo n.º 1
0
 void Awake()
 {
     //find collider
     _playerCollider = this.GetComponent <BoxCollider2D>();
     colorData       = this.gameObject.GetComponent <PlayerColorData>();
     _armor          = GameObject.FindObjectsOfType <PlayerArmor>();
     //state machine init
     attack  = _attack;
     block   = _block;
     machine = new PlayerStateMachine();
     doState = new state[] { Idle, Move, Jump, Jump2, InAirNow, Attack1, Attack2, Attack3, MovingAttack, InAirAttack, Parry, Block, Crouch, Hit, Dead };
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }