public static void Update()
        {
            Functions.KeyReading();
            Functions.ApplyPause(!Globals.Collided);
            GameFunctions.JumpStage();

            if (Globals.Collided)
            {
                if (!Globals.Landed)
                {
                    Functions.ShowMessage(Globals.Stage.labelMessage, Color.Red, "Colidiu!\r\nPressione Enter para continuar...");
                }
                else
                {
                    Functions.ShowMessage(Globals.Stage.labelMessage, Color.LimeGreen, "Pousou!\r\nPressione Enter para continuar...");
                }

                GameFunctions.ApplyPostStage();
            }
            else
            {
                if (!Globals.EndedIntro)
                {
                    GameFunctions.UpdateIntro();
                }
                else
                {
                    GameFunctions.UpdateGeneric();

                    Globals.UpdateLander.Invoke();

                    Globals.UpdateArea.Invoke();

                    Globals.UpdateOre.Invoke();

                    StageFunctions.UpdateStage();

                    GameFunctions.UpdateAfter();
                }
            }
        }
        public static bool VerifyCollision(ShipSprite sprite, Sprite lz, ref bool landed)
        {
            Globals.CollidedUp    = false;
            Globals.CollidedDown  = false;
            Globals.CollidedLeft  = false;
            Globals.CollidedRight = false;

            if (Globals.CurrentStage != 0)
            {
                Globals.CollidedGround = GameFunctions.CollidedGround();
            }

            if (Globals.CurrentStage != 0)
            {
                Globals.CollidedLZ = GameFunctions.CollidedLZ(ref landed);
            }
            else if (Globals.StageFreeCollision)
            {
                Globals.CollidedLZ = GameFunctions.CollidedLZ(ref landed);
            }


            if (Globals.CollidedGround || Globals.CollidedLZ)
            {
                Globals.Collided = true;

                Globals.SelectedShip.VerticalVelocity   = 0;
                Globals.SelectedShip.HorizontalVelocity = 0;

                Globals.Stage.pictureBox2.Visible = false;
                Globals.Stage.pictureBox3.Visible = false;
                Globals.Stage.pictureBox4.Visible = false;
                Globals.Stage.pictureBox5.Visible = false;
            }
            else
            {
                Globals.Collided = false;
            }

            return(Globals.Collided);
        }
Ejemplo n.º 3
0
        public static void ApplyPause(bool enabled)
        {
            if (enabled)
            {
                if (!Globals.EnterKeyPressed && Globals.EnterKeyPressedPrevious)
                {
                    if (!Globals.Paused)
                    {
                        Globals.Paused = true;
                        GameFunctions.SwitchTimers(false);
                        currentMessage      = Globals.Stage.labelMessage.Text;
                        currentMessageColor = Globals.Stage.labelMessage.ForeColor;

                        Functions.ShowMessage(Globals.Stage.labelMessage, Color.White, "Pause");
                    }
                    else
                    {
                        Globals.Paused = false;
                        GameFunctions.SwitchTimers(true);
                        Functions.ShowMessage(Globals.Stage.labelMessage, currentMessageColor, currentMessage);
                    }
                }
            }
        }
        public static void ApplyPostStage()
        {
            Globals.RocketSFX.Stop();
            Globals.FloatSFX.Stop();
            Globals.SpecialSFX.Stop();
            Globals.ExplosionSFX.Stop();

            if (!Globals.EnterKeyPressed && Globals.EnterKeyPressedPrevious)
            {
                Globals.timerUpdate.Enabled       = false;
                Globals.timerUpdatePaused.Enabled = false;

                Globals.timerUpdate.Stop();
                Globals.timerUpdatePaused.Stop();

                if (Globals.GameType == Enum.GameType.Arcade)
                {
                    if (Globals.Landed)
                    {
                        GameFunctions.ChangeStage();
                    }
                    else if (Globals.Collided)
                    {
                        if (Globals.ShipsLeft > -1)
                        {
                            Globals.ShipsLeft--;
                            StageFunctions.InitializeStage();
                        }
                        else
                        {
                            Globals.Stage.Visible    = false;
                            Globals.FormMain.Visible = true;
                            Globals.ShipsLeft        = 2;
                        }
                    }
                }
                else if (Globals.GameType == Enum.GameType.OreColleting)
                {
                    if (Globals.Landed)
                    {
                        if (!Globals.Stage.pictureBoxRedOre.Visible && !Globals.Stage.pictureBoxGreenOre.Visible && !Globals.Stage.pictureBoxBlueOre.Visible)
                        {
                            Globals.OreCollected = true;
                            GameFunctions.RecordFeatures(Enum.RecordType.OreCollected);
                            Globals.Stage.Visible = false;
                            Globals.ChooseStage   = new FormChooseStage();
                            Globals.ChooseStage.Show();
                        }
                        else
                        {
                            StageFunctions.InitializeStage();
                        }
                    }
                    else
                    {
                        StageFunctions.InitializeStage();
                    }
                }
                else
                {
                    StageFunctions.InitializeStage();
                }
            }
        }