Пример #1
0
    /*
     * internal override void Move(float speed)
     * {
     *  if (state == STATE.PRESSING)
     *  {
     *      height -= speed*100;
     *      if (height <= 65)
     *      {
     *          topArrow.gameObject.SetActive(false);
     *          bg.gameObject.SetActive(false);
     *          CleanEff();
     *      }
     *  }
     *  else {
     *      base.Move(speed);
     *  }
     * }*/


    public void SetType(SongInfo.DIRECTION d, float height)
    {
        if (height < 178)
        {
            height = 178;
        }
        this.height    = height;
        this.directoin = d;
    }
Пример #2
0
 public void SetType(SongInfo.DIRECTION d)
 {
     if (icon == null)
     {
         icon = transform.Find("Icon").GetComponent <tk2dSprite>();
         anim = transform.Find("Icon").GetComponent <tk2dSpriteAnimator>();
     }
     ds = d.ToString().ToLower();
     anim.Play(ds);
 }
Пример #3
0
    public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN && pauseUI.gameObject.activeSelf)
        {
            if ((Time.time - keyTime) < 0.3f)
            {
                return;
            }
            keyTime = Time.time;
            pauseUI.Move(x);
            Sounder.instance.Play("按键音效");
            if (pauseUI.gameObject.activeSelf == false)
            {
                SwitchPause();
            }
            return;
        }

        //测试版本
        if (type == INPUT_TYPE.JOYSTICK)
        {
            return;
        }

        SongInfo.DIRECTION d = SongInfo.DIRECTION.NONE;
        if (x > 0)
        {
            d = SongInfo.DIRECTION.RIGHT;
        }
        else if (x < 0)
        {
            d = SongInfo.DIRECTION.LEFT;
        }
        else if (y < 0)
        {
            d = SongInfo.DIRECTION.UP;
        }
        else if (y > 0)
        {
            d = SongInfo.DIRECTION.DOWN;
        }
        if (d == SongInfo.DIRECTION.NONE)
        {
            return;
        }
        int index = (int)player;

        if (playState == PLAY_STATE.PLAYING)
        {
            players[index].PressKey(d, keyState);
        }
    }
Пример #4
0
    public void AddArrowEff(Vector3 pos, SongInfo.DIRECTION d)
    {
        GameObject prefab = null;

        switch (d)
        {
        case SongInfo.DIRECTION.LEFT:
            prefab = arrowLeft;
            break;

        case SongInfo.DIRECTION.RIGHT:
            prefab = arrowRight;
            break;

        case SongInfo.DIRECTION.UP:
            prefab = arrowTop;
            break;

        case SongInfo.DIRECTION.DOWN:
            prefab = arrowDown;
            break;
        }

        if (prefab == null)
        {
            Debug.Log(d);
            Debug.Break();
        }

        GameObject go = PrefabPool.instance(prefab);

        go.name               = prefab.name;
        go.transform.parent   = transform;
        go.transform.position = pos;
        go.GetComponent <ParticleSystem>().Play();
        go.SetActive(true);
        TimeCallback   call     = go.GetComponent <TimeCallback>();
        ParticleSystem particle = go.GetComponent <ParticleSystem>();

        particle.Stop();
        particle.Play(true);
        call.data         = prefab;
        call.doneCallback = (g) =>
        {
            PrefabPool.restore(g, g.GetComponent <TimeCallback>().data as GameObject);
        };
    }
Пример #5
0
    public void ScreenHit(SongInfo.DIRECTION d)
    {
        switch (d)
        {
        case SongInfo.DIRECTION.LEFT:
            bigArrowLeft.SetActive(true);
            break;

        case SongInfo.DIRECTION.RIGHT:
            bigArrowRight.SetActive(true);
            break;

        case SongInfo.DIRECTION.UP:
            bigArrowUp.SetActive(true);
            break;

        case SongInfo.DIRECTION.DOWN:
            bigArrowDown.SetActive(true);
            break;
        }
    }
Пример #6
0
    /// <summary>
    /// 按键
    /// </summary>
    /// <param name="d"></param>
    /// <param name="keyState"></param>
    public void PressKey(SongInfo.DIRECTION d, JoystickManager.JOYSTICK_KEY_STATE keyState)
    {
        Arrow      a;
        GameObject targetArrow = null;


        for (int i = 0, c = arrows.Count; i < c; i++)
        {
            a = arrows[i];
            if (a.songTime.direction != d)
            {
                continue;
            }

            switch (a.songTime.direction)
            {
            case SongInfo.DIRECTION.UP:
                targetArrow = upArrow;
                break;

            case SongInfo.DIRECTION.DOWN:
                targetArrow = downArrow;
                break;

            case SongInfo.DIRECTION.LEFT:
                targetArrow = leftArrow;
                break;

            case SongInfo.DIRECTION.RIGHT:
                targetArrow = rightArrow;
                break;
            }
            float dis = Vector3.Distance(a.transform.position, targetArrow.transform.position);
            Global.TIMING_JUAGE_TYPE type = GetJuade(dis);

            if (a is LongPressArrow)
            {
                LongPressArrow l = a as LongPressArrow;
                switch (l.state)
                {
                case LongPressArrow.STATE.READY:
                    //准备好时,如果按下相应的链接又在区域内,改变为按下状态
                    if (type != Global.TIMING_JUAGE_TYPE.NONE && keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
                    {
                        l.SetState(LongPressArrow.STATE.PRESSING);
                        l.pressingTime = runTime;
                        SetArrowResult(type, a);
                        float offset = targetArrow.transform.position.y - a.transform.position.y;
                        a.transform.position = targetArrow.transform.position;
                        l.height            += offset * 100;
                        l.AddLongEff(targetArrow.transform.position);
                        return;
                    }
                    break;

                case LongPressArrow.STATE.PRESSING:
                    //如果按下状态时弹起,改为失败状态
                    if (keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_UP)
                    {
                        dis = Vector3.Distance(l.GetSecondArrowPos(), targetArrow.transform.position);
                        Global.TIMING_JUAGE_TYPE secondType = GetJuade(dis);
                        if (secondType != Global.TIMING_JUAGE_TYPE.NONE)
                        {
                            l.SetState(LongPressArrow.STATE.SUCCESS);
                            l.subState = Arrow.STATE.SUCCESS;
                            KillArrow(a);
                            SetArrowResult(secondType, a, false);
                            Eff.instance.AddArrowEff(targetArrow.transform.position, a.songTime.direction);
                        }
                        else
                        {
                            l.SetState(LongPressArrow.STATE.FAILED);
                        }
                        return;
                    }
                    break;
                }
            }
            else
            {
                if (keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
                {
                    if (type != Global.TIMING_JUAGE_TYPE.NONE)
                    {
                        KillArrow(a);
                        SetArrowResult(type, a);
                        Eff.instance.AddArrowEff(targetArrow.transform.position, a.songTime.direction);
                        return;
                    }
                }
            }
        }
    }