public void onObstacle(Player player) { Debug.Log("Walk on Obstacle"); //// 播放机关开启音效 if (GameManagerGlobalData.isFirstMeetObstacle) { // 第一次进行格挡 PlayerAudioCtrl.getInstance().play(PlayerAudioData.SWITCH_OBSTACLE_CLIP, () => { PlayerAudioCtrl.getInstance().play(PlayerAudioData.HAVE_TO_PARRY_CLIP, () => { player.setState(PlayerState.Parry); ArrowDir _arrowDir = Parry.getInstance().startParry(); ObstacleAudioCtrl.getInstance().playAudio(_arrowDir); }); }); } else if (GameManagerGlobalData.isSecondMeetObstacle) { // 第二次进行格挡 PlayerAudioCtrl.getInstance().play(PlayerAudioData.SWITCH_OBSTACLE_CLIP, () => { player.setState(PlayerState.Parry); ArrowDir _arrowDir = Parry.getInstance().startParry(); ObstacleAudioCtrl.getInstance().playAudio(_arrowDir); }); } else { PlayerAudioCtrl.getInstance().play(PlayerAudioData.SWITCH_OBSTACLE_CLIP, () => { player.setState(PlayerState.Parry); ArrowDir _arrowDir = Parry.getInstance().startParry(); ObstacleAudioCtrl.getInstance().playAudio(_arrowDir); }); } player.setState(PlayerState.Idle); }
public void refuseMoveBack() { setState(PlayerState.Waiting); PlayerAudioCtrl.getInstance().play(PlayerAudioData.REFUSE_BACK_TIPS, () => { setState(PlayerState.Idle); }); }
// 游戏失败 private void Failed() { Debug.Log("Game Over Failed!"); // 手势监听,判断游戏结束后用户操作,但是由于目前策划功能不完善,所以这个部分默认是重新开始游戏 BackgroundAudioCtrl.getInstance().play(BackgroundAudioData.GAME_OVER); BackgroundAudioCtrl.getInstance().play(BackgroundAudioData.NONE); PlayerAudioCtrl.getInstance().play(PlayerAudioData.RESTART_GAME_TIPS); switchGestureToGameOver(); }
// flag 用于判断,当前格挡状态是成功还是失败 public void endParry(bool flag) { if (flag) { // 格挡成功 PlayerAudioCtrl.getInstance().play(PlayerAudioData.PARRY_CLIP, () => { if (!_firstSuccess) { _owner.setState(PlayerState.Idle); } }); // 成功格挡次数 + 1 _parrySuccessCount++; if (getSwordRemainCount() == 1) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.SWORD_WILL_BREAK_CLIP); } // 播放初次格挡成功音效 if (_firstSuccess) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.ESCAPE_CLIP, () => { _firstSuccess = false; _owner.setState(PlayerState.Idle); }); } _isParry = false; ProjectUtils.Log("Parry Success"); } else { PlayerAudioCtrl.getInstance().play(PlayerAudioData.HURT_CLIP, () => { if (_owner.getLife() != 2) { _owner.setLife(-1); } }); if (_owner.getLife() == 2) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.EXCITATION_CLIP, () => { _owner.setState(PlayerState.Idle); _owner.setLife(-1); }); } _isParry = false; ProjectUtils.Log("Parry Failed"); } _owner.switchGestureToMove(); _sliderBar.value = 0; _sliderFillImage.color = Color.white; }
public void onExit(Player player) { Debug.Log("Walk exit the room"); player.setState(PlayerState.Waiting); // play audio PlayerAudioCtrl.getInstance().play(PlayerAudioData.OPEN_DOOR_CLIP, () => { PlayerAudioCtrl.getInstance().play(PlayerAudioData.STEP_CLIP); PlayerAudioCtrl.getInstance().play(PlayerAudioData.CLOSE_DOOR_CLIP, () => { GameManager.getInstance().GameOver(); // back to main menu }); }); }
// init audio private void initAudioCtrl() { AudioPlayCtrl.init(audioManager); PlayerAudioCtrl.init(audioManager); BackgroundAudioCtrl.init(audioManager); ObstacleAudioCtrl.init(audioManager); // close contain feature when in the runtime. if (PlatformUtils.isTouchUser()) { isDevelop = false; } }
public void onWalking(Player player, Action handle = null) { player.setState(PlayerState.Moving); PlayerAudioCtrl.getInstance().play(PlayerAudioData.STEP_CLIP, () => { if (handle != null) { handle(player); } else { player.setState(PlayerState.Idle); } }); return; }
// Use this for initialization void Start() { _drawMap = this.GetComponent <DrawMap>(); MapData.initMapData(); initAudioCtrl(); DrawMap(); if (GameManagerGlobalData.isFirstTimeEnter) { setGameState(GameState.Plot); PlayerAudioCtrl.getInstance().play(PlayerAudioData.CHAPTER_01_1); PlayerAudioCtrl.getInstance().play(PlayerAudioData.SLIDER_TO_FRONT_TIPS, initGameState); GameManagerGlobalData.isFirstTimeEnter = false; } else { initGameState(); } }
public void onWall(Player player) { Debug.Log("Walk hit the Wall"); hitOnWallCount++; player.setState(PlayerState.Waiting); if (hitOnWallCount == 1) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.HIT_WALL_CLIP, () => { PlayerAudioCtrl.getInstance().play(PlayerAudioData.IS_WALL_CLIP, () => { player.setState(PlayerState.Idle); }); }); } else { PlayerAudioCtrl.getInstance().play(PlayerAudioData.HIT_WALL_CLIP, () => { player.setState(PlayerState.Idle); }); } }
// 关于各个关卡对应剧情点格子处理方案暂时放在这里 public void firstMapSpecialPlot(Player player) { Vector2 pos = player.getPosition(); // Debug.Log("firstMapSpecialPlot: " + pos.x + ": " + pos.y); if (pos.x == 10 && pos.y == 13) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.SLIDER_TO_LEFT_TIPS, () => { player.setState(PlayerState.Idle); }); } else if (pos.x == 8 && pos.y == 13) { GameManager.getInstance().setGameState(GameState.Plot); PlayerAudioCtrl.getInstance().play(PlayerAudioData.CHAPTER_01_2, () => { player.setState(PlayerState.Idle); GameManager.getInstance().setGameState(GameState.Playing); }); } }
public void playAudio(ArrowDir dir) { String name = selectedDir(dir); System.String clipName = ""; AudioPlayObj obj = null; if (dir == ArrowDir.FRONT) { clipName = "frontSword"; obj = new AudioPlayObj(selectClip(clipName), this, selectSource(name)); } else { clipName = "bow"; obj = new AudioPlayObj(selectClip(clipName), this, selectSource(name)); } AudioPlayCtrl.getInstance().addEffectObj(obj); // 教学音频设计需要 if (GameManagerGlobalData.isFirstMeetObstacle) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.PARRY_TO_FRONT_TIPS, () => { Parry.getInstance().setParry(true); GameManagerGlobalData.isFirstMeetObstacle = false; }); } else if (GameManagerGlobalData.isSecondMeetObstacle) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.PARRY_TO_LEFT_TIPS, () => { Parry.getInstance().setParry(true); GameManagerGlobalData.isSecondMeetObstacle = false; }); } }
public static void init(GameObject manager) { _instance = manager.GetComponent <PlayerAudioCtrl>(); }
private bool checkParry(ArrowDir _dir) { PlayerAudioCtrl.getInstance().play(PlayerAudioData.SWING_CLIP); _restTime = parryElapseTime; return(inTimeRange() && _dir == _arrowDir); }