Ejemplo n.º 1
0
    /// <summary>
    /// 创建玩家的球拍
    /// </summary>
    void CreatePlayerPaddle(SSGlobalData.PlayerEnum indexPlayer)
    {
        if (indexPlayer == SSGlobalData.PlayerEnum.Null)
        {
            return;
        }

        int        index        = (int)indexPlayer + 1;
        string     prefabPath   = "Player/Paddle_" + index;
        GameObject gmDataPrefab = (GameObject)Resources.Load(prefabPath);

        if (gmDataPrefab != null)
        {
            //SSDebug.Log("CreatePlayerPaddle................. indexPlayer == " + indexPlayer);
            GameObject     obj = (GameObject)Instantiate(gmDataPrefab);
            SSPlayerPaddle com = obj.GetComponent <SSPlayerPaddle>();
            if (com != null)
            {
                com.Init(m_PaddleData, indexPlayer);
                SetPlayerPaddle(com);
            }
        }
        else
        {
            SSDebug.LogWarning("CreatePlayerPaddle -> gmDataPrefab was null! prefabPath == " + prefabPath);
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 获取玩家球拍组件
    /// </summary>
    internal SSPlayerPaddle GetPlayerPaddle(SSGlobalData.PlayerEnum indexPlayer)
    {
        SSPlayerPaddle result = m_PlayerPaddleList.Find((dt) => {
            return(dt.IndexPlayer.Equals(indexPlayer));
        });

        return(result);
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 设置玩家球拍组件
    /// </summary>
    void SetPlayerPaddle(SSPlayerPaddle paddle)
    {
        if (m_PlayerPaddleList == null)
        {
            return;
        }

        if (paddle != null && m_PlayerPaddleList.Contains(paddle) == false)
        {
            m_PlayerPaddleList.Add(paddle);
        }
    }
Ejemplo n.º 4
0
    internal void SetBallPosition(SSGlobalData.PlayerEnum indexPlayer)
    {
        if (SSGameMange.GetInstance() == null || SSGameMange.GetInstance().m_SSGameScene == null)
        {
            return;
        }

        SSPlayerPaddle paddle = SSGameMange.GetInstance().m_SSGameScene.GetPlayerPaddle(indexPlayer);

        if (paddle != null)
        {
            m_BallData.isMove     = false;
            rigidbody.isKinematic = true;
            paddle.FillBall(m_BallData.posOffsetZ, this);
        }
        SetBallPlayerIndex(indexPlayer);
    }
Ejemplo n.º 5
0
    void OnCollisionExit(Collision col)
    {
        //SSDebug.Log("col == " + col.gameObject.layer);
        if (col.gameObject.layer == m_BallData.badBounceLayer)
        {
            //曲棍球碰上围挡
            SSWeiDangMesh weiDangMesh = col.gameObject.GetComponent <SSWeiDangMesh>();
            if (weiDangMesh != null)
            {
                weiDangMesh.PlayWeiDangAni();
            }

            //m_BallData.m_badBounceCount++;
            //if (m_BallData.m_badBounceCount > m_BallData.BadBounceMax)
            //{
            //    //SSDebug.Log("handle bad bounce!");
            //    handleBadBounce();
            //}
            m_BallData.PlayAudio();
        }
        else
        {
            m_BallData.m_badBounceCount = 0;
        }

        SSPlayerPaddle paddle = col.gameObject.GetComponent <SSPlayerPaddle>();

        if (paddle != null)
        {
            m_BallData.PlayAudio();
            SetBallPlayerIndex(paddle.IndexPlayer);
            if (SSGameMange.GetInstance() != null && SSGameMange.GetInstance().m_SSGameScene != null)
            {
                SSGameMange.GetInstance().m_SSGameScene.UpdateBallSpeed();
            }
            //handleHitPaddle();
        }
    }