コード例 #1
0
ファイル: Ball.cs プロジェクト: arkenthera/Pong2D
    //--------------------------------------------------------------------------------
    public void SetSpeedState(Ai.SpeedState b)
    {
        Ai.SpeedState state = b;

        switch (state)
        {
        case Ai.SpeedState.Constant:
            m_vSpeedMultiplier = new Vector2(5, 0.5f);
            break;

        case Ai.SpeedState.Exponential:
            m_bExpSpeed        = true;
            m_vSpeedMultiplier = new Vector2(12, 5);
            break;

        case Ai.SpeedState.Linear:
            m_vSpeedMultiplier = new Vector2(7, 0);
            break;
        }
        m_vInitialBallSpeed = m_vSpeedMultiplier;
    }
コード例 #2
0
    //--------------------------------------------------------------------------------
    public void Start()
    {
        Application.targetFrameRate = 60;

        m_b2Player = false;
        if (PlayerPrefs.GetInt("Is2Player") == 1)
        {
            m_b2Player = true;
        }

        #region UI STUFF
        m_iPlayerScore = 0;
        m_iAIScore     = 0;

        m_CanvasTextComps = GameObject.Find("ScoreCanvas").GetComponentsInChildren <Text>();
        m_CanvasButtons   = GameObject.Find("ScoreCanvas").GetComponentsInChildren <Button>();

        //PauseMenu
        m_PauseMenu = Resources.Load("PauseMenuPrefab", typeof(GameObject)) as GameObject;

        m_PauseMenu        = (GameObject)Instantiate(m_PauseMenu, new Vector3(0, 0, 0), new Quaternion());
        m_PauseMenu.name   = "PauseMenuPrefab";
        m_PauseMenuButtons = GameObject.Find("PauseMenuPrefab").GetComponentsInChildren <Button>();

        for (int i = 0; i < m_PauseMenuButtons.Length; i++)
        {
            if (m_PauseMenuButtons[i].name == "ExitButton")
            {
                m_ExitButton = m_PauseMenuButtons[i];
                m_ExitButton.onClick.AddListener(new UnityEngine.Events.UnityAction(OnPauseMenuExitButtonClick));
            }
            if (m_PauseMenuButtons[i].name == "GoBackButton")
            {
                m_GoBackButton = m_PauseMenuButtons[i];
                m_GoBackButton.onClick.AddListener(new UnityEngine.Events.UnityAction(OnPauseMenuGoBackButtonClick));
            }
            if (m_PauseMenuButtons[i].name == "RestartButton")
            {
                m_RestartButton = m_PauseMenuButtons[i];
                m_RestartButton.onClick.AddListener(new UnityEngine.Events.UnityAction(OnPauseMenuRestartButtonClick));
            }
            if (m_PauseMenuButtons[i].name == "MainMenuButton")
            {
                m_MainMenuButton = m_PauseMenuButtons[i];
                m_MainMenuButton.onClick.AddListener(new UnityEngine.Events.UnityAction(OnMainMenuButtonClick));
            }
        }


        m_PauseMenu.SetActive(false);
        //Global Canvas
        for (int i = 0; i < m_CanvasButtons.Length; i++)
        {
            if (m_CanvasButtons[i].name == "MenuButton")
            {
                m_MenuButton = m_CanvasButtons[i];
            }
        }
        m_MenuButton.onClick.AddListener(new UnityEngine.Events.UnityAction(OnMenuButtonClick));

        for (int i = 0; i < m_CanvasTextComps.Length; i++)
        {
            if (m_CanvasTextComps[i].name == "PlayerScoreText")
            {
                m_PlayerScoreText = m_CanvasTextComps[i];
            }
            if (m_CanvasTextComps[i].name == "AIScoreText")
            {
                m_AIScoreText = m_CanvasTextComps[i];
            }
        }
        m_PlayerScoreText.text = "Player Score:";
        m_AIScoreText.text     = "AI Score:";
        Text[] t = GameObject.Find("ScoreCanvas").GetComponentsInChildren <Text>();


        for (int i = 0; i < t.Length; ++i)
        {
            if (t[i].name == "CountDownText")
            {
                m_DelayText = t[i];
            }
        }
        #endregion

        #region RESOURCE INITIALIZATION
        m_Ball   = Resources.Load("Ball", typeof(GameObject)) as GameObject;
        m_Paddle = Resources.Load("Paddle", typeof(GameObject)) as GameObject;
        m_vInitialBallPosition = m_Ball.transform.position;

        float paddleOffsetFromEdge = m_Paddle.GetComponent <BoxCollider2D>().bounds.extents.x / 2;
        m_Paddle.transform.position   = Camera.main.ScreenToWorldPoint(new Vector3(paddleOffsetFromEdge, Screen.height / 2, 0));
        m_Paddle.transform.position  += new Vector3(0, 0, 1);
        m_Paddle.transform.localScale = new Vector3(0.1f, 0.5f, 0);
        m_Paddle      = Instantiate(m_Paddle);
        m_Paddle.name = "LeftPaddle";
        m_vInitialPlayerPaddlePosition = m_Paddle.transform.position;
        m_Paddle.SendMessage("SetPlayer", true);

        if (m_b2Player)
        {
            m_Player2Paddle      = Resources.Load("Player2Paddle", typeof(GameObject)) as GameObject;
            paddleOffsetFromEdge = m_Player2Paddle.GetComponent <BoxCollider2D>().bounds.extents.x / 2;
            m_Player2Paddle.transform.position   = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width - paddleOffsetFromEdge, Screen.height / 2, 0));
            m_Player2Paddle.transform.position  += new Vector3(0, 0, 1);
            m_Player2Paddle.transform.localScale = new Vector3(0.1f, 0.5f, 0);
            m_Player2Paddle                 = Instantiate(m_Player2Paddle);
            m_Player2Paddle.name            = "Player2Paddle";
            m_vInitial2PlayerPaddlePosition = m_Player2Paddle.transform.position;
            m_Player2Paddle.SendMessage("SetPlayer", false);
        }
        else
        {
            m_AIPaddle = Resources.Load("AIPaddle", typeof(GameObject)) as GameObject;
            m_AIPaddle.transform.position   = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width - paddleOffsetFromEdge, Screen.height / 2, 0));
            m_AIPaddle.transform.position  += new Vector3(0, 0, 1);
            m_AIPaddle.transform.localScale = new Vector3(0.1f, 0.5f, 0);
            m_AIPaddle      = Instantiate(m_AIPaddle);
            m_AIPaddle.name = "AIPaddle";
            m_vInitial2PlayerPaddlePosition = m_AIPaddle.transform.position;
            m_Player2Paddle = m_AIPaddle;
        }
        Ai.SpeedState s = Ai.SpeedState.Linear;

        m_Ball      = Instantiate(m_Ball);
        m_Ball.name = "Ball";
        m_Ball.transform.localScale = new Vector3(0.2f, 0.2f, 0);
        m_Ball.SendMessage("SetSpeedState", s);
        m_vScreenBoundary = new Vector2(Screen.width, Screen.height);

        #endregion

        #region Game State Initialization
        GameState initialStatus = new GameState(false, -1, false);
        m_sStatus = initialStatus;

        m_PlayerWinnerEndScreen = Resources.Load("PlayerWinnerScreen", typeof(GameObject)) as GameObject;
        m_AIWinnerEndScreen     = Resources.Load("AIWinnerScreen", typeof(GameObject)) as GameObject;

        m_PlayerWinnerEndScreen = (GameObject)Instantiate(m_PlayerWinnerEndScreen, new Vector3(0, 5, 0), new Quaternion());
        m_AIWinnerEndScreen     = (GameObject)Instantiate(m_AIWinnerEndScreen, new Vector3(0, 5, 0), new Quaternion());

        m_PlayerWinnerEndScreen.SetActive(false);
        m_AIWinnerEndScreen.SetActive(false);

        m_bDelayAfterAScore = false;

        if (PlayerPrefs.GetFloat("Difficulty") != -1)
        {
            float difficulty = PlayerPrefs.GetFloat("Difficulty");
            //Debug.Log(difficulty.ToString());
        }
        #endregion
    }