Пример #1
0
    private void GameBallOutofRange(BombBall ball)
    {
        m_start = false;
        Vector3 position = m_bombBall.GetPosition();

        if (position.y > 0)
        {
            //m_contestData.AddHeart();
            m_aiIndex     = 0;
            m_aiBombTime += 2f;
        }
        else
        {
            //m_contestData.ReduceHeart();
            m_playerIndex     = 0;
            m_playerBombTime += 2f;
        }

        if (m_contestData != null && !m_contestData.m_changeAudio && m_change)
        {
            GameAudioModuel audioModuel = GameStart.GetInstance().AudioModuel;
            audioModuel.StopAudio();
        }

        m_bombBall.ResetVelocity();
        m_bombBall.SetPosition(m_ground.GroundData.GetFireBallPoint(ESide.Player));
        m_aiController.SwitchState(EAIControlState.BackToBornPoint);
//        if (m_contestData.m_heart < 0)
//        {
//            m_player.SetIdle();
//            m_aiController.gameObject.SetActive(false);
//        }
    }
Пример #2
0
    public override void ExitState()
    {
        GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;

        eventModuel.UnRegisterEventListener(GameEventID.TRIGGER_GAME_EVENT, OnTriggerEffectStart);
        eventModuel.UnRegisterEventListener(GameEventID.END_GAME_EVENT, OnTriggerEffectEnd);

        if (m_ground != null)
        {
            GameObject.Destroy(m_ground.gameObject);
            m_ground = null;
        }

        if (m_player != null)
        {
            m_player.Destroy();
            m_player = null;
        }

        if (m_playerController != null)
        {
            m_playerController.DestroyController();
            m_playerController = null;
        }

        if (m_bombBall != null)
        {
            m_bombBall.Destory();
            m_bombBall = null;
        }

        if (m_ai != null)
        {
            m_ai.Destroy();
            m_ai = null;
        }

        if (m_aiController != null)
        {
            m_aiController.DestroyController();
            m_aiController = null;
        }

        if (m_effect != null)
        {
            m_effect.Destory();
        }

        GameStart.GetInstance().UIModuel.UnLoadResUI(m_bombUI.gameObject);
    }
Пример #3
0
 public void SetBomBall(BombBall ball)
 {
     m_target = ball.GetBallInstance().transform;
 }
Пример #4
0
    public override void EnterState()
    {
        GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;

        eventModuel.RegisterEventListener(GameEventID.TRIGGER_GAME_EVENT, OnTriggerEffectStart);
        eventModuel.RegisterEventListener(GameEventID.END_GAME_EVENT, OnTriggerEffectEnd);

        m_contestData = new GameContestData();

        GameObject ground = GameStart.GetInstance().ResModuel.LoadResources <GameObject>(EResourceType.Ground, "Ground");

        ground   = CommonFunc.Instantiate(ground);
        m_ground = CommonFunc.AddSingleComponent <Ground>(ground);
        GroundData groundData = new GroundData();

        m_ground.InitGround(groundData);

        PlayerData playerData = new PlayerData();

        m_player = new Player(1, playerData);
        m_player.InitPlayerAction(HitBallDelegate);

        GameObject go = new GameObject("Controller");

        m_playerController = go.AddComponent <PlayerController>();
        m_playerController.InitController(m_player);

        BallData ballData = new BallData();

        m_bombBall = new BombBall(ballData, m_ground.BounceLine);
        m_bombBall.SetOutofRangeAction(GameBallOutofRange);
        m_bombBall.SetPosition(groundData.GetFireBallPoint(ESide.Player));

        AIPlayerData aiData = new AIPlayerData();

        m_ai = new Player(2, aiData);
        m_ai.Transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, 180f));
        m_ai.InitPlayerAction(HitBallDelegate);

        m_aiController = go.AddComponent <AIController>();
        m_aiController.SetBomBall(m_bombBall);
        m_aiController.InitController(m_ai);

        m_effect = new GameEffect();

        m_bombUI = GameStart.GetInstance().UIModuel.LoadResUI <GameBombUI>("BombUI");

        GameAudioModuel audioModuel = GameStart.GetInstance().AudioModuel;
        List <string>   list        = new List <string>
        {
            "BGM_tense",
            "lerp",
        };

        audioModuel.PreLoadAudio(list);
        audioModuel.StopAudio();

        m_player.Target = m_bombBall.GetBallInstance().transform;
        m_ai.Target     = m_bombBall.GetBallInstance().transform;

        m_playerBombTime      = 0f;
        m_aiBombTime          = 0f;
        m_playerTotalBombTime = 20f;
        m_aiTotalBombTime     = 20f;
        m_start  = false;
        m_end    = false;
        m_change = false;
    }