/* * 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; }
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); }
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); } }
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); }; }
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; } }
/// <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; } } } } }