示例#1
0
    void OnEventEasyChange(KoreographyEvent evt)
    {
        string txt = evt.GetTextValue();

        if (m_PreSample == evt.StartSample)
        {
            return;
        }
        m_PreSample = evt.StartSample;

        string[] values = txt.Split(',');

        if (values.Length < 3)
        {
            return;
        }

        MusicEventData data = new MusicEventData();

        data.oper      = (MusicOper)int.Parse(values[0]);
        data.player    = (MusicPlayer)int.Parse(values[1]);
        data.content   = values[2];
        data.sampleLen = (evt.EndSample - evt.StartSample) / (float)Koreographer.GetSampleRate(m_AudioClip.name);

        //data.oper = MusicOper.LongUp;
        //data.sampleLen = 1.5f;

        //Debug.Log(txt + "   " + data.sampleLen);

        if (EventChangeHandler != null)
        {
            EventChangeHandler(data);
        }
    }
示例#2
0
    public override void OnUpdate()
    {
        if (!MusicManager.Instance.IsPlaying())
        {
            _iCtrl.Close();
            return;
        }

        LinkedListNode <BulletItem> temp = m_BulletObjs.First;

        while (temp != null)
        {
            BulletState    bulletState       = BulletState.Normal;
            BulletItem     item              = temp.Value;
            MusicEventData musicData         = item.musicData;
            float          bulletCollisionX1 = item.obj.transform.position.x; // - item.collisionSize.x * 0.5f;

            if (bulletCollisionX1 <= m_Player.transform.position.x)
            {
                bulletState = BulletState.Dead;
            }
            else
            {
                //进入外圈
                if (bulletCollisionX1 <= m_OutTargetX2 && bulletCollisionX1 >= m_OutTargetX1)
                {
                    bulletState = BulletState.IntoOut;
                    if (bulletCollisionX1 <= m_InnerTargetX2 && bulletCollisionX1 >= m_InnerTargetX1)
                    {
                        bulletState = BulletState.IntoInner;
                    }
                }
            }

            //Debug.Log(bulletState);
            switch (bulletState)
            {
            case BulletState.Dead:
                m_BulletObjs.Remove(temp);
                GameObject.Destroy(item.obj);
                break;

            case BulletState.Normal:
                switch (musicData.oper)
                {
                case MusicOper.LongUp:
                    if (LTInput.GetKey(KeyCode2.Left))
                    {
                        if (item.collisionPoint != Vector3.zero)
                        {
                            float offset = item.collisionPoint.x - bulletCollisionX1;
                            item.maskTrans.sizeDelta = new Vector2(item.maskSize.x - offset, item.maskTrans.sizeDelta.y);
                        }
                    }
                    break;

                case MusicOper.LongDown:
                    if (LTInput.GetKey(KeyCode2.Right))
                    {
                        if (item.collisionPoint != Vector3.zero)
                        {
                            float offset = Mathf.Abs(item.collisionPoint.x - bulletCollisionX1);
                            item.maskTrans.sizeDelta = new Vector2(item.maskSize.x - offset, item.maskTrans.sizeDelta.y);
                        }
                    }
                    break;
                }
                break;

            case BulletState.IntoOut:
            case BulletState.IntoInner:
            {
                switch (musicData.oper)
                {
                case MusicOper.Up:
                    if (LTInput.GetKeyDown(KeyCode2.Left))
                    {
                        m_BulletObjs.Remove(temp);
                        GameObject.Destroy(item.obj);
                    }
                    break;

                case MusicOper.LongUp:
                    if (LTInput.GetKey(KeyCode2.Left))
                    {
                        if (item.collisionPoint == Vector3.zero)
                        {
                            item.collisionPoint = new Vector3(bulletCollisionX1, 0, 0);
                        }

                        float offset = item.collisionPoint.x - bulletCollisionX1;
                        item.maskTrans.sizeDelta = new Vector2(item.maskSize.x - offset, item.maskTrans.sizeDelta.y);
                    }
                    break;

                case MusicOper.Down:
                    if (LTInput.GetKeyDown(KeyCode2.Right))
                    {
                        m_BulletObjs.Remove(temp);
                        GameObject.Destroy(item.obj);
                    }
                    break;

                case MusicOper.LongDown:
                    if (LTInput.GetKey(KeyCode2.Right))
                    {
                        if (item.collisionPoint == Vector3.zero)
                        {
                            item.collisionPoint = new Vector3(bulletCollisionX1, 0, 0);
                        }
                        float offset = Mathf.Abs(item.collisionPoint.x - bulletCollisionX1);
                        item.maskTrans.sizeDelta = new Vector2(item.maskSize.x - offset, item.maskTrans.sizeDelta.y);
                    }
                    break;
                }
            }
            break;
            }

            temp = temp.Next;
        }
    }
示例#3
0
    //bool isCreate = false;
    void OnEventChangeHandler(MusicEventData data)
    {
        //if (!isCreate)
        //{
        //    data.oper = MusicOper.LongUp;
        //    isCreate = true;
        //}
        //else
        //{
        //    return;
        //}
        GameObject bulletObj = GameObject.Instantiate(m_Bullet);

        bulletObj.Attach(m_Bullets);

        bulletObj.transform.position = m_Enermy.transform.position;
        bulletObj.SetActive(true);
        bulletObj.transform.DOMoveX(m_Player.transform.position.x, m_Speed).SetEase(Ease.Linear);

        BulletItem item = new BulletItem();

        item.obj           = bulletObj;
        item.bgImage       = bulletObj.transform.Find("bg").GetComponent <Image>();
        item.contentText   = bulletObj.transform.Find("bg/Text").GetComponent <Text>();
        item.maskTrans     = bulletObj.transform.Find("bg").GetComponent <RectTransform>();
        item.musicData     = data;
        item.collisionSize = bulletObj.GetComponent <RectTransform>().sizeDelta;

        switch (data.oper)
        {
        case MusicOper.Up:
            item.outScore      = 100;
            item.innerScore    = 150;
            item.bgImage.color = m_upColor;
            break;

        case MusicOper.LongUp:
            item.outScore      = 200;
            item.innerScore    = 300;
            item.bgImage.color = m_longUpColor;
            break;

        case MusicOper.Down:
            item.outScore      = 100;
            item.innerScore    = 150;
            item.bgImage.color = m_downColor;
            break;

        case MusicOper.LongDown:
            item.outScore      = 200;
            item.innerScore    = 300;
            item.bgImage.color = m_longDownColor;
            break;
        }

        item.contentText.text = data.content;

        float width = item.contentText.TextWidth();

        if (data.sampleLen > 0)
        {
            if (data.sampleLen * m_OneSmapleLength > width)
            {
                width = data.sampleLen * m_OneSmapleLength;
            }
        }

        item.maskSize = new Vector2(width, 0);
        item.bgImage.GetComponent <RectTransform>().offsetMax = new Vector2(width, 0);
        item.bgImage.GetComponent <RectTransform>().sizeDelta = new Vector2(width, 36);

        m_BulletObjs.AddLast(item);
    }