コード例 #1
0
    IEnumerator EndRoundCR()
    {
        EndRoundCRRunning = true;
        foreach (GameObject GO in GameObject.FindGameObjectsWithTag("Ground"))
        {
            Destroy(GO);
        }
        DestroyObject(Hook);
        DestroyObject(Player);
        if (ScoreAdded == false)
        {
            if (RunnerWin)
            {
                if (P1Run)
                {
                    ScoreP1 += 1;
                }
                else
                {
                    ScoreP2 += 1;
                }
            }
            else if (RunnerWin == false)
            {
                if (P1Run)
                {
                    ScoreP2 += 1;
                }
                else
                {
                    ScoreP1 += 1;
                }
            }
            EndRound.text = ScoreP1.ToString() + " - " + ScoreP2.ToString();
            yield return(new WaitForSeconds(1.5f));

            EndRound.text = "";
            if (ScoreP1 == ScoreLimit || ScoreP2 == ScoreLimit)
            {
                LoadScene(3);
                StartCoroutine("SetScore");
                GameState = Enum.GameState.Victory;
            }
            else if (P1Run)
            {
                StartCoroutine("SpawnPlayer");
            }
            else if (P1Run == false)
            {
                StartCoroutine("SpawnPlayer");
            }

            ScoreAdded = true;
        }
        EndRoundCRRunning = false;
    }
コード例 #2
0
        /// <summary>
        /// A felhasználói felület képernyőre rajzolt része.
        /// </summary>
        void OnGUI()
        {
            int   ScrW = Screen.width, ScrX = !SBS.Enabled ? ScrW : ScrW / 2, ScrY = Screen.height;
            float BoxW = ScrX / 5, BoxH = ScrX / 24, HBoxW = BoxW / 2;

            GUI.skin.box.fontSize = ScrX / 32;
            foreach (MenuItem Item in MenuItems)
            {
                float MarginLeft = Item.ActualScrPos.x - HBoxW;
                GUI.Box(new Rect(MarginLeft, ScrY - Item.ActualScrPos.y + ScrY / 15, BoxW, BoxH), Item.Action);
                if (SBS.Enabled)
                {
                    GUI.Box(new Rect(MarginLeft > ScrX ? MarginLeft - ScrX : MarginLeft + ScrX, ScrY - Item.ActualScrPos.y + ScrY / 15, BoxW, BoxH), Item.Action);
                }
            }
            if (Playing)   // Játék
            {
                int Margin = ScrY / 20;
                GUI.skin.label.alignment = TextAnchor.UpperRight;
                GUI.skin.label.fontSize  = ScrY / 10;
                Rect RightRect = new Rect(0, Margin, ScrX - Margin, ScrY);
                if (GameMode == GameModes.ScoreAttack)
                {
                    Utils.ShadedLabel(RightRect, Lives == 3 ? "♥♥♥" : Lives == 2 ? "♥♥" : "♥", Color.red);
                }
                else if (GameMode == GameModes.Multiplayer)
                {
                    Utils.ShadedLabel(RightRect, ScoreP2.ToString(), Color.blue);
                }
                else
                {
                    Utils.ShadedLabel(RightRect, Mathf.CeilToInt(TimeRemaining).ToString(), Color.red);
                }
                GUI.color = Color.green;
                if (GameMode == GameModes.Multiplayer)
                {
                    GUI.skin.label.alignment = TextAnchor.UpperCenter;
                    Utils.ShadedLabel(new Rect(0, Margin, ScrX, ScrY), Lives == 3 ? "♥♥♥" : Lives == 2 ? "♥♥" : "♥", Color.red);
                }
                GUI.skin.label.alignment = TextAnchor.UpperLeft;
                Utils.ShadedLabel(new Rect(Margin, Margin, ScrX, ScrY), Score.ToString(), Color.green);
                if (GameMode != GameModes.Multiplayer)
                {
                    int TopScore = TopScores[(int)GameMode];
                    if (TopScore != 0)
                    {
                        int HighTop = Margin + GUI.skin.label.fontSize;
                        GUI.skin.label.fontSize /= 2;
                        Utils.ShadedLabel(new Rect(Margin, HighTop, ScrX, ScrY), "Best: " + (TopScore > Score ? TopScore : Score), TopScore < Score ? Color.green : Color.white);
                    }
                }
                GUI.color = Color.white;
            }
            else if (SelectedMenu == 3)     // Game over
            {
                GUI.skin.label.alignment = TextAnchor.UpperCenter;
                int Top = GUI.skin.label.fontSize = ScrY / 10, TopScore;
                if (GameMode != GameModes.Multiplayer)
                {
                    Utils.ShadedLabel(new Rect(0, Top += GUI.skin.label.fontSize, ScrX, ScrY), GameMode == GameModes.ScoreAttack ? "Game Over" : "Time Up", Color.white);
                    TopScore = TopScores[(int)GameMode];
                    if (Score != TopScore)
                    {
                        Utils.ShadedLabel(new Rect(0, Top += GUI.skin.label.fontSize, ScrX, ScrY), "High score: " + TopScore, Color.white);
                    }
                    GUI.skin.label.fontSize            = ScrY / 8;
                    Utils.ShadedLabel(new Rect(0, Top += GUI.skin.label.fontSize, ScrX, ScrY),
                                      (Score == TopScore ? "New high score: " : "Score: ") + Score, Score == TopScore ? Color.green : Color.red);
                }
                else
                {
                    Utils.ShadedLabel(new Rect(0, Top += GUI.skin.label.fontSize, ScrX, ScrY), Score == ScoreP2 ? "Draw" : Score > ScoreP2 ? "Player 1 wins" : "Player 2 wins", Color.white);
                    GUI.skin.label.fontSize            = ScrY / 8;
                    Utils.ShadedLabel(new Rect(0, Top += GUI.skin.label.fontSize, ScrX, ScrY),
                                      "P1 : " + Score + " | " + ScoreP2 + " : P2", Color.blue);
                }
            }
            else if (SelectedMenu == 0)     // Főmenü
            {
                Rect InfoRect = new Rect(Screen.width - 30, 5, 20, 20);
                GUI.Button(InfoRect, "?");
                Vector2 MousePos = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);
                if (InfoRect.Contains(MousePos))
                {
                    GUI.skin.box.fontSize = 12;
                    GUI.Box(new Rect(MousePos.x - 200, MousePos.y, 200, 65), "LEGO kör - http://lego.sch.bme.hu\nBence Sgánetz\nÁdám Szi\nModels by Ákos Tóth");
                }
            }
        }
コード例 #3
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            switch (SceneManager.GetActiveScene().name)
            {
            case "MainMenu":
                LoadScene(-1);
                break;

            case "SelectMenu":
                LoadScene(0);
                break;

            case "Credits":
                LoadScene(0);
                break;

            case "Grab&Rush":
                if (GameState != Enum.GameState.MenuPause)
                {
                    TMP       = GameState;
                    GameState = Enum.GameState.MenuPause;
                    GameObject.Find("Canvas").gameObject.transform.Find("Menu").gameObject.SetActive(true);
                    Time.timeScale = 0f;
                }
                else if (GameState == Enum.GameState.MenuPause)
                {
                    GameObject.Find("Menu").SetActive(false);
                    GameState      = TMP;
                    Time.timeScale = 1f;
                }
                break;
            }
        }
        switch (GameState)            //Permet de gérer le jeu selon son état GameState
        {
        case Enum.GameState.MainMenu: //Menu principal
            break;

        case Enum.GameState.BallSelect:     //Selection de la boule/Skin, score max
            break;

        case Enum.GameState.GamePhaseP1Run:     //Phase de jeu, le joueur 1 court
            ScoreText      = GameObject.Find("Score").GetComponent <Text>();
            ScoreText.text = ScoreP1.ToString() + " - " + ScoreP2.ToString();
            P1Run          = true;
            ScoreAdded     = false;

            break;

        case Enum.GameState.GamePhaseP2Run:     //Phase de jeu, le joueur 2 court
            ScoreText      = GameObject.Find("Score").GetComponent <Text>();
            ScoreText.text = ScoreP1.ToString() + " - " + ScoreP2.ToString();
            P1Run          = false;
            ScoreAdded     = false;

            break;

        case Enum.GameState.MenuPause:     //Menu pause en jeu
            break;

        case Enum.GameState.EndRound:     //Fin du round, phase de transition et d'ajout au score
            EndRound = GameObject.Find("EndRound").GetComponent <Text>();
            if (EndRoundCRRunning == false)
            {
                StartCoroutine(EndRoundCR());
            }

            break;

        case Enum.GameState.Victory:    //Fin de la partie, afficher le score et recommencer/arreter de jouer

            break;

        case Enum.GameState.Credits:     //Generique
            break;

        default:
            break;
        }
    }