Exemplo n.º 1
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        GameEventModuel eveModuel = GameStart.GetInstance().EventModuel;

        if (eveModuel != null)
        {
            eveModuel.SendEvent(GameEventID.PLAYER_HIT_BALL, true, 0f);
        }
    }
Exemplo n.º 2
0
    private void OnBackClick()
    {
        GameAudioModuel moduel = GameStart.GetInstance().AudioModuel;

        moduel.PlayAudio("click_01");
        GameEventModuel eveModuel = GameStart.GetInstance().EventModuel;

        eveModuel.SendEvent(GameEventID.SWITCH_GAME_STATE, true, 0f, EGameStateType.GameMenuState);
    }
Exemplo n.º 3
0
    private void OnContinueButtonClick()
    {
        m_mode.SetActive(true);
        m_button.gameObject.SetActive(false);

        GameAudioModuel moduel = GameStart.GetInstance().AudioModuel;

        moduel.PlayAudio("click_01");
    }
Exemplo n.º 4
0
    private void HitBallDelegate(Player player, Vector2 direction, float force, int id)
    {
        if (m_gameBall == null)
        {
            return;
        }

        bool checkIsHitArea = PlayerCollider.CheckInHitBallArea(m_gameBall.GetBallInstance().transform, player.Transform,
                                                                player.PlayerData.m_radius, player.PlayerData.m_angle, player.BoxCollider);

        if (checkIsHitArea)
        {
            CameraControl.GetInstance().Trigger();
            CameraControl.GetInstance().TriggerMask();

            GameAudioModuel audioModuel = GameStart.GetInstance().AudioModuel;
            if (id == m_player.ID)
            {
                GameEventModuel meoduel = GameStart.GetInstance().EventModuel;
                meoduel.SendEvent(GameEventID.PLAYER_HIT_BALL, true, 0f);

                m_side = ESide.Player;
                m_contestData.AddIndex();

                m_contestUI.FreshUI(m_contestData.m_heart, m_contestData.m_index);
                if (m_contestData != null && m_contestData.m_changeAudio && !m_change)
                {
                    List <string> list = new List <string>
                    {
                        "lerp",
                        "BGM_002",
                    };
                    audioModuel.PlayBgAudio(list);
                    m_change = true;
                }

                m_playerIndex++;
                m_playerIndex = Mathf.Clamp(m_playerIndex, 0, m_audioNameList.Count - 1);
                audioModuel.PlayAudio(m_audioNameList[m_playerIndex]);
            }
            else
            {
                m_side = ESide.AI;
                m_aiIndex++;
                m_aiIndex = Mathf.Clamp(m_aiIndex, 0, m_audioNameList.Count - 1);
                audioModuel.PlayAudio(m_audioNameList[m_aiIndex]);
            }

            if (m_gameBall != null)
            {
                ESide side = (id == m_player.ID) ? ESide.Player : ESide.AI;
                m_gameBall.SetVelocity(direction, force, side);
                m_gameBall.ChangeEffectDir(side);
            }
        }
    }
Exemplo n.º 5
0
 private void OnTriggerStay2D(Collider2D other)
 {
     if (!m_trigger)
     {
         GameEventModuel eveModuel = GameStart.GetInstance().EventModuel;
         eveModuel.SendEvent(GameEventID.TRIGGER_GAME_EVENT, true, 0f);
         gameObject.SetActive(false);
         m_trigger = true;
     }
 }
Exemplo n.º 6
0
 private void Update()
 {
     if (m_start && Time.time > m_endTime)
     {
         m_start = false;
         HideEffect();
         GameEventModuel eveModuel = GameStart.GetInstance().EventModuel;
         eveModuel.SendEvent(GameEventID.END_GAME_EVENT, true, 0f);
     }
 }
Exemplo n.º 7
0
    public override void Init()
    {
        m_uiDic = new Dictionary <string, GameUIBase>();

        GameResModuel resModuel = GameStart.GetInstance().ResModuel;
        GameObject    ui        = resModuel.LoadResources <GameObject>(EResourceType.UI, "UIParent");

        m_uiParent = CommonFunc.Instantiate(ui);
        m_parent   = CommonFunc.GetChild(m_uiParent, "Canvas").transform;
    }
Exemplo n.º 8
0
    public void InitAnimator(string controllerName)
    {
        if (m_animator == null)
        {
            return;
        }
        GameResModuel             resModuel  = GameStart.GetInstance().ResModuel;
        RuntimeAnimatorController controller = resModuel.LoadResources <RuntimeAnimatorController>(EResourceType.AnimController, controllerName);

        m_animator.runtimeAnimatorController = controller;
    }
Exemplo n.º 9
0
    public override void EnterState()
    {
        GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;

        eventModuel.RegisterEventListener(GameEventID.ENTITY_HIT_BALL, HandleBallHitEvent);

        if (m_entity != null)
        {
            m_entity.Switch(EEntityState.Idle, Vector3.zero);
        }
    }
Exemplo n.º 10
0
    public float PlayAudio(string name)
    {
        m_souce = gameObject.AddComponent <AudioSource>();
        GameResModuel resmoduel = GameStart.GetInstance().ResModuel;

        m_clip       = resmoduel.LoadResources <AudioClip>(EResourceType.Audio, name);
        m_souce.clip = m_clip;
        m_souce.Play();
        m_time  = 0;
        m_start = true;
        return(m_clip == null ? 0f : m_clip.length);
    }
Exemplo n.º 11
0
    void OnFingerMove(FingerMotionEvent e)
    {
        GameStart.GetInstance().LogModuel.Log(ELogType.Normal, "OnFingerMove    :  " + (e.Position * m_moveSpeed).ToString());
        Vector2 fingerDir          = e.Position - m_downPosition;
        Vector3 entityMovePosition = m_recordDownPosition + new Vector3(fingerDir.x, fingerDir.y, 0f) * m_moveSpeed;

        if (MoveEntityAction != null)
        {
            MoveEntityAction(entityMovePosition);
        }
        //m_entity.transform.position = CheckOutofRange(entityMovePosition);
    }
Exemplo n.º 12
0
    public override void EnterState()
    {
        if (m_entity != null)
        {
            Vector2 dir      = m_entity.GetForwardDir();
            Vector2 position = new Vector2(Random.Range(m_fireRange.x, m_fireRange.y), dir.y);
            m_entity.Switch(EEntityState.Hit, position.normalized);

            GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;
            eventModuel.SendEvent(GameEventID.AI_SWITCH_STATE, false, 0.3f, EAIStateType.GotoHitTarget);
        }
    }
Exemplo n.º 13
0
    public BombBall(BallData data, Action <string> action = null)
    {
        GameResModuel resModuel = GameStart.GetInstance().ResModuel;
        GameObject    ball      = resModuel.LoadResources <GameObject>(EResourceType.Ball, "BombBall");

        ball = CommonFunc.Instantiate(ball);
        if (ball != null)
        {
            m_ballInstance = ball.AddComponent <BombInstance>();
            m_ballInstance.SetBallRect(data.m_ballBoundArea);
            m_ballInstance.SetBounceAction(action);
        }
    }
Exemplo n.º 14
0
    private void HandleTime()
    {
        if (m_bombBall != null && m_start)
        {
            Vector3 position = m_bombBall.GetPosition();
            if (position.y > 1.5f)
            {
                m_aiBombTime += Time.deltaTime;
                if (m_aiBombTime > m_aiTotalBombTime)
                {
                    GameAudioModuel audioModuel = GameStart.GetInstance().AudioModuel;
                    m_bombBall.PlayBomb();
                    m_bombUI.ShowEnd(true);

                    if (m_playerController.gameObject.activeSelf)
                    {
                        audioModuel.PlayAudio(new List <string> {
                            "explode_03", "win"
                        });
                    }
                    m_playerController.gameObject.SetActive(false);
                }
                m_end = true;
                float value = m_aiBombTime / m_aiTotalBombTime;
                m_bombBall.SetBombScale(value);
            }
            else if (position.y < -1.5f)
            {
                m_playerBombTime += Time.deltaTime;
                if (m_playerBombTime > m_playerTotalBombTime)
                {
                    GameAudioModuel audioModuel = GameStart.GetInstance().AudioModuel;
                    m_bombBall.PlayBomb();
                    //audioModuel.PlayAudio("explode_03");
                    m_bombUI.ShowEnd(false);

                    if (m_playerController.gameObject.activeSelf)
                    {
                        audioModuel.PlayAudio(new List <string> {
                            "explode_03", "lose"
                        });
                    }

                    m_playerController.gameObject.SetActive(false);
                }
                m_end = true;
                float value = m_playerBombTime / m_playerTotalBombTime;
                m_bombBall.SetBombScale(value);
            }
        }
    }
Exemplo n.º 15
0
    public void PlayBgAudio(string name)
    {
        StopAllCoroutines();

        m_bgName = name;
        AudioClip clip = null;

        if (!m_audioClipDic.TryGetValue(name, out clip))
        {
            GameResModuel resModuel = GameStart.GetInstance().ResModuel;
            clip = resModuel.LoadResources <AudioClip>(EResourceType.Audio, name);
        }
        PlayBgAudio(clip);
    }
Exemplo n.º 16
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_gameBall != null)
        {
            m_gameBall.Destory();
            m_gameBall = 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_contestUI.gameObject);
    }
Exemplo n.º 17
0
    public override void EnterState()
    {
        m_target = GameBallManager.GetInstance().GetTargetBall();
        if (m_target == null)
        {
            GameStart.GetInstance().LogModuel.Log(ELogType.Error, "TargetBall is null");
            return;
        }

        if (m_entity != null)
        {
            m_entity.Switch(EEntityState.Prepare, Vector2.zero);
        }
    }
Exemplo n.º 18
0
    private void Update()
    {
        if (m_start && Time.time > m_endTime)
        {
            m_start = false;
            if (m_ink != null)
            {
                m_ink.SetActive(false);

                GameEventModuel eveModuel = GameStart.GetInstance().EventModuel;
                eveModuel.SendEvent(GameEventID.END_GAME_EVENT, true, 0f);
            }
        }
    }
Exemplo n.º 19
0
    public void PreLoadAudio(List <string> list)
    {
        GameResModuel resModuel = GameStart.GetInstance().ResModuel;

        for (int i = 0; i < list.Count; i++)
        {
            if (!m_audioClipDic.ContainsKey(list[i]))
            {
                resModuel.LoadResourcesAsync <AudioClip>(EResourceType.Audio, list[i], res =>
                {
                    m_audioClipDic.Add(res.name, res as AudioClip);
                });
            }
        }
    }
Exemplo n.º 20
0
    private void HitBall(Vector3 recordPos)
    {
        GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;
        Vector2         dir         = CalculateHitBallDir(recordPos);

        if (m_characterControl != null)
        {
            eventModuel.SendEvent(GameEventID.ENTITY_HIT_BALL, true, 0f, EHitForceType.Middle, new Vector2(dir.x, dir.y));
        }
        else
        {
            EHitForceType type = (EHitForceType)Random.Range((int)EHitForceType.Soft, (int)EHitForceType.High);
            eventModuel.SendEvent(GameEventID.AI_HIT_BALL, true, 0f, type, new Vector2(dir.x, dir.y));
        }
    }
Exemplo n.º 21
0
    public T LoadResUI <T>(string name)
        where T : GameUIBase
    {
        GameResModuel resModuel = GameStart.GetInstance().ResModuel;
        GameObject    ui        = resModuel.LoadResources <GameObject>(EResourceType.UI, name);

        ui                         = CommonFunc.Instantiate(ui);
        ui.name                    = name;
        ui.transform.parent        = m_parent;
        ui.transform.localPosition = Vector3.zero;
        ui.transform.localScale    = Vector3.one;
        T script = ui.AddComponent <T>();

        m_uiDic.Add(name, script);
        return(script);
    }
Exemplo n.º 22
0
    public override void EnterState()
    {
        GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;

        eventModuel.RegisterEventListener(GameEventID.Reset_Game_State, HandleResetStateEvent);
        eventModuel.RegisterEventListener(GameEventID.ENTITY_HIT_BALL, HandleEntityHitBall);

        GameObject ball = GameObject.Find("Ball");

        if (ball != null)
        {
            m_ball = CommonFunc.AddSingleComponent <Ball>(ball);
            m_ball.Reset();
        }

        GameObject chracter = GameObject.Find("Character");

        if (chracter != null)
        {
            m_entityInstance = chracter.GetComponent <EntityInstance>();

            Vector4 moveRange = new Vector4(-1.73f, -0.81f, 3.15f, -5.4f);
            m_entityInstance.SetMoveRange(moveRange);
        }


        GameObject ai = GameObject.Find("AI");

        if (ai != null)
        {
            m_aiInstance = ai.GetComponent <EntityInstance>();
            Vector4 moveRange = new Vector4(-2.09f, 9.3f, 2.61f, 4.61f);
            m_aiInstance.SetMoveRange(moveRange);
            ai.AddComponent <AIStateController>();
        }

        GameDataModuel dataModuel = GameStart.GetInstance().DataModuel;

        dataModuel.SetGameData(3, 0);

        m_ui = GameObject.FindObjectOfType <GameTestStateUI>();
        if (m_ui != null)
        {
            m_ui.Init();
        }
    }
Exemplo n.º 23
0
    private IEnumerator PlayBgAudioSync(List <string> list)
    {
        for (int i = 0; i < list.Count; i++)
        {
            m_bgName = name;
            AudioClip clip = null;
            if (!m_audioClipDic.TryGetValue(list[i], out clip))
            {
                GameResModuel resModuel = GameStart.GetInstance().ResModuel;
                clip = resModuel.LoadResources <AudioClip>(EResourceType.Audio, name);
            }

            PlayBgAudio(clip);

            yield return(new WaitForSeconds(clip.length));
        }
    }
Exemplo n.º 24
0
    public BallMechine(BallMechineData data, BallData ballData, Vector3 leftPoint, Vector3 rightPoint)
    {
        m_mechineData   = data;
        m_ballData      = ballData;
        m_ballList      = new List <GameBall>();
        m_cacheBallList = new List <GameBall>();

        GameResModuel resModuel = GameStart.GetInstance().ResModuel;
        GameObject    mechine   = resModuel.LoadResources <GameObject>(EResourceType.BallMechine, "BallMechine");

        mechine    = CommonFunc.Instantiate(mechine);
        m_instance = mechine.AddComponent <BallMechineInstance>();
        mechine.transform.position = data.m_mechinePosition;
        mechine.transform.rotation = Quaternion.Euler(data.m_mechineRotation);
        m_instance.ServiceBall     = ServieBall;
        m_instance.SetLeftRightPoint(leftPoint, rightPoint);
    }
Exemplo n.º 25
0
    private void Start()
    {
        EntityInstance instance = gameObject.GetComponent <EntityInstance>();

        m_aiStateDic = new Dictionary <int, AIStateBase>();
        m_aiStateDic.Add((int)EAIStateType.Idle, new AIIdleState(instance));
        m_aiStateDic.Add((int)EAIStateType.FireBall, new AIFireBallState(instance));
        m_aiStateDic.Add((int)EAIStateType.GotoHitTarget, new AIGoHitTargetState(instance));
        m_aiStateDic.Add((int)EAIStateType.Hit, new AIHitState(instance));
        m_aiStateDic.Add((int)EAIStateType.Prepare, new AIPrepareState(instance));

        m_curAIStateType = EAIStateType.None;
        SwitchState(EAIStateType.Idle);

        GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;

        eventModuel.RegisterEventListener(GameEventID.AI_SWITCH_STATE, HandleSwitchState);
    }
Exemplo n.º 26
0
    public void Init()
    {
        if (m_heartParent != null)
        {
            int childCount = m_heartParent.transform.childCount;
            m_hearts = new GameObject[childCount];
            for (int i = 0; i < childCount; i++)
            {
                m_hearts[i] = m_heartParent.transform.GetChild(i).gameObject;
            }
        }

        GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;

        eventModuel.RegisterEventListener(GameEventID.GAME_DATA_CHANGE, OnDataChange);

        FreshUI();
    }
Exemplo n.º 27
0
    public void Switch(EEntityState state, Vector3 recordPos)
    {
        GameStart.GetInstance().LogModuel.Log(ELogType.Normal, "Switch State : " + state.ToString());
        //播放对应动画
        if (m_characterAnim != null)
        {
            m_characterAnim.PlayAnim(state);
        }

        switch (state)
        {
        case EEntityState.Hit:
            if ((m_characterCollider != null && m_characterCollider.BallEnter) || (m_batCollider != null && m_batCollider.BallEnter))
            {
                HitBall(recordPos);
            }
            break;
        }
    }
Exemplo n.º 28
0
    public override void Init()
    {
        m_stateDic = new Dictionary <int, GameStateBase>();
        m_stateDic.Add((int)EGameStateType.GameTestState, new GameTestState(EGameStateType.GameTestState));
        m_stateDic.Add((int)EGameStateType.GameExerciseState, new GameExerciseState(EGameStateType.GameExerciseState));
        m_stateDic.Add((int)EGameStateType.GameContestState, new GameContestState(EGameStateType.GameContestState));
        m_stateDic.Add((int)EGameStateType.GameMenuState, new GameMenuState(EGameStateType.GameMenuState));
        m_stateDic.Add((int)EGameStateType.BombState, new GameBombState(EGameStateType.BombState));

        foreach (int id in m_stateDic.Keys)
        {
            m_stateDic[id].SwitchStateAction = SwitchState;
        }

        SwitchState(EGameStateType.GameMenuState);

        GameEventModuel eveModuel = GameStart.GetInstance().EventModuel;

        eveModuel.RegisterEventListener(GameEventID.SWITCH_GAME_STATE, SwitchState);
    }
Exemplo n.º 29
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        if (other != null)
        {
            if (other.gameObject.layer == LayerMask.NameToLayer("Wall"))
            {
                ContactPoint2D contactPoint = other.contacts[0];
                Vector3        newDir       = Vector3.Reflect(m_dir, contactPoint.normal);
                newDir.z = 0f;
                //Quaternion rotation = Quaternion.FromToRotation(m_dir,  newDir);
                //transform.rotation = rotation;
                if (m_rigidBody != null)
                {
                    m_rigidBody.velocity = newDir.normalized * m_speed;
                }

                m_dir = newDir;
            }
            else if (other.gameObject.layer == LayerMask.NameToLayer("Boundary"))
            {
                GameDataModuel dataModuel = GameStart.GetInstance().DataModuel;
                if (gameObject.transform.localPosition.y > 0)
                {
                    dataModuel.AddHeart();
                }
                else
                {
                    dataModuel.ReduceHeart();
                }

                GameEventModuel eventModuel = GameStart.GetInstance().EventModuel;
                if (eventModuel != null)
                {
                    eventModuel.SendEvent(GameEventID.Reset_Game_State, true, 0f);
                }
            }
        }
    }
Exemplo n.º 30
0
    public void Update()
    {
        if (m_start)
        {
            if (Time.time > m_endTime)
            {
                m_start = false;

                if (m_ballInstance != null)
                {
                    m_ballInstance.SetOffsetDir(Vector2.zero);
                    m_ballInstance.SetNeedOffset(false);
                }

                GameEventModuel eveModuel = GameStart.GetInstance().EventModuel;
                eveModuel.SendEvent(GameEventID.END_GAME_EVENT, true, 0f);
            }
            else
            {
                m_ballInstance.SetNeedOffset(m_needOffset);
            }
        }
    }