public void SpawnPlayerDaoDan(XkPlayerCtrl script) { if (DaoJiShiCtrl.GetInstance() != null && DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi()) { XkGameCtrl.IsActivePlayerOne = DaoJiShiCtrl.IsActivePlayerOne; XkGameCtrl.IsActivePlayerTwo = DaoJiShiCtrl.IsActivePlayerTwo; DaoJiShiCtrl.GetInstance().StopDaoJiShi(); } if (PlayerDaoDan != null && script != null) { int max = AmmoPointTran.Length; for (int i = 0; i < max; i++) { if (!AmmoPointTran [i].gameObject.activeSelf) { continue; } AmmoPointTran [i].gameObject.SetActive(false); script.SpawnPlayerDaoDan(AmmoPointTran [i], PlayerDaoDan); } } if (Network.peerType == NetworkPeerType.Disconnected || Network.peerType == NetworkPeerType.Server) { Invoke("DelayShowPlayerFinishTask", TimeGameOver); } }
public void ActivePlayerOne() { if (IsActivePlayer) { return; } if (DaoJiShiCtrl.TimeVal <= 1) { return; } if (FinishPanelCtrl.GetInstance().CheckIsActiveFinish()) { return; } bool isEnablePlayer = false; PlayHitStartBtAudio(); if (!GlobalData.GetInstance().IsFreeMode) { if (GlobalData.GetInstance().Icoin >= GlobalData.GetInstance().XUTOUBI) { StartBtCtrl.GetInstanceP2().InitStartBtCartoon(); } else { InsertCoinCtrl.GetInstanceP2().ShowInsertCoin(); } HeadCtrlPlayer.GetInstanceP1().StopColor(); isEnablePlayer = true; } else { HeadCtrlPlayer.GetInstanceP1().StopColor(); HeadCtrlPlayer.GetInstanceP2().PlayColor(); StartBtCtrl.GetInstanceP2().InitStartBtCartoon(); isEnablePlayer = true; } if (isEnablePlayer) { IsActivePlayer = true; CloseStartBtCartoon(); if (GlobalData.GetInstance().gameMode == GameMode.SoloMode) { ActiveDaJuCtrl.GetInstanceP1().ActivePlayerBlood(true); DaoJiShiCtrl.GetInstance().StopDaoJiShi(); GameOverCtrl.GetInstance().HiddenContinueGame(); GameTimeCtrl.GetInstance().InitPlayGameTime(1); //GameCtrlXK.GetInstance().InitFillPlayerBlood(); } } }
/// <summary> /// 被空袭击中UI提示动画结束事件响应. /// </summary> public void OnAnimationEnvent() { if (GameUICenterCtrl.GetInstance() != null) { GameUICenterCtrl.GetInstance().RemoveKongXiJiZhongUI(); } if (!JiFenJieMianCtrl.GetInstance().GetIsShowFinishTask()) { DaoJiShiCtrl.GetInstance().StartPlayDaoJiShi(); } XkGameCtrl.SetActivePlayerOne(false); XkGameCtrl.SetActivePlayerTwo(false); }
/** * 防止在进入关闭UI之前,主角死亡播放倒计时,当倒计时结束后游戏会退回循环动画的bug. */ public static void CheckIsPlayDaoJiShi() { if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi()) { DaoJiShiCtrl.GetInstance().StopDaoJiShi(); XkGameCtrl.PlayerYouLiangCur = 3f; if (DaoJiShiCtrl.IsActivePlayerOne) { XkGameCtrl.SetActivePlayerOne(true); DaoJiShiCtrl.IsActivePlayerOne = false; } if (DaoJiShiCtrl.IsActivePlayerTwo) { XkGameCtrl.SetActivePlayerTwo(true); DaoJiShiCtrl.IsActivePlayerTwo = false; } } }
void CheckIsActiveGameOver(XkPlayerCtrl script) { if (DaoJiShiCtrl.GetInstance() != null && DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi()) { XkGameCtrl.IsActivePlayerOne = DaoJiShiCtrl.IsActivePlayerOne; XkGameCtrl.IsActivePlayerTwo = DaoJiShiCtrl.IsActivePlayerTwo; DaoJiShiCtrl.GetInstance().StopDaoJiShi(); } if (Network.peerType != NetworkPeerType.Disconnected) { if (Network.peerType == NetworkPeerType.Client) { return; } if (NetCtrl.GetInstance() != null) { NetCtrl.GetInstance().TryActiveGameOverEvent(); } } else { if (GameOverCtrl.IsShowGameOver) { return; } } if (IsActiveGameOver) { return; } Debug.Log("CheckIsActiveGameOver..."); IsActiveGameOver = true; XKGlobalData.GetInstance().StopAudioRanLiaoJingGao(); SpawnPlayerDaoDan(script); }
void Update() { HandleOtherPortGameOverInfo(); if (!IsHandlePlayer) { UpdateAiPlayerOtherPortPos(); } if (DaoJiShiCtrl.GetInstance().GetIsStopCheckAddSpeed() || GameCtrlXK.IsStopMoveAiPlayer) { if (mGameTime != 0) { mGameTime = 0; StopCheckIsAddSpeed(); } return; } if (mGameTime == 0) { mGameTime = 100; } checkPlayerMoveDir(); }
// Update is called once per frame void Update() { if (PlayerSt == PlayerTypeEnum.TanKe) { if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi() || (!XkGameCtrl.IsActivePlayerOne && !XkGameCtrl.IsActivePlayerTwo)) { pcvr.CloseQiNangQian(); pcvr.CloseQiNangHou(); return; } EulerAngle = transform.eulerAngles; if (EulerAngle.x > 180f) { EulerAngle.x -= 360f; } if (EulerAngle.z > 180f) { EulerAngle.z -= 360f; } float eulerAngleX = EulerAngle.x; float eulerAngleZ = EulerAngle.z; float offsetAngle = 2f; if (Mathf.Abs(eulerAngleX) <= offsetAngle) { //前后气囊放气. QiNangStateTK[0] = 0; QiNangStateTK[1] = 0; pcvr.CloseQiNangQian(); pcvr.CloseQiNangHou(); } else if (eulerAngleX < 0f) { //前气囊充气,后气囊放气. QiNangStateTK[0] = 1; QiNangStateTK[1] = 0; pcvr.OpenQiNangQian(); pcvr.CloseQiNangHou(); } else if (eulerAngleX > 0f) { //后气囊充气,前气囊放气. QiNangStateTK[0] = 0; QiNangStateTK[1] = 1; pcvr.OpenQiNangHou(); pcvr.CloseQiNangQian(); } if (Mathf.Abs(eulerAngleZ) <= offsetAngle) { //左右气囊放气. QiNangStateTK[2] = 0; QiNangStateTK[3] = 0; pcvr.CloseQiNangZuo(); pcvr.CloseQiNangYou(); } else if (eulerAngleZ > 0f) { //右气囊充气,左气囊放气. QiNangStateTK[2] = 0; QiNangStateTK[3] = 1; pcvr.OpenQiNangYou(); pcvr.CloseQiNangZuo(); } else if (eulerAngleZ < 0f) { //左气囊充气,右气囊放气. QiNangStateTK[2] = 1; QiNangStateTK[3] = 0; pcvr.OpenQiNangZuo(); pcvr.CloseQiNangYou(); } } else if (PlayerSt == PlayerTypeEnum.FeiJi) { EulerAngle = transform.eulerAngles; if (EulerAngle.x > 180f) { EulerAngle.x -= 360f; } if (EulerAngle.z > 180f) { EulerAngle.z -= 360f; } float eulerAngleX = EulerAngle.x; float eulerAngleZ = EulerAngle.z; float offsetAngle = 1f; if (Mathf.Abs(eulerAngleX) <= offsetAngle) { //前后气囊放气. QiNangStateFJ[0] = 0; QiNangStateFJ[1] = 0; } else if (eulerAngleX < 0f) { //前气囊充气,后气囊放气. QiNangStateFJ[0] = 1; QiNangStateFJ[1] = 0; } else if (eulerAngleX > 0f) { //后气囊充气,前气囊放气. QiNangStateFJ[0] = 0; QiNangStateFJ[1] = 1; } if (Mathf.Abs(eulerAngleZ) <= offsetAngle) { //左右气囊放气. QiNangStateFJ[2] = 0; QiNangStateFJ[3] = 0; } else if (eulerAngleZ > 0f) { //右气囊充气,左气囊放气. QiNangStateFJ[2] = 0; QiNangStateFJ[3] = 1; } else if (eulerAngleZ < 0f) { //左气囊充气,右气囊放气. QiNangStateFJ[2] = 1; QiNangStateFJ[3] = 0; } } }
void OnTriggerEnter(Collider other) { if (XKTriggerKaQiuShaFire.IsCloseKaQiuShaTest) { return; //test; } if (Network.peerType != NetworkPeerType.Disconnected) { if (Network.peerType == NetworkPeerType.Server) { if (FeiJiMarkCom != null && TanKeMarkCom != null) { IsActiveHeTiCloseUI = true; ServerPortCameraCtrl.CloseAllServerPortCamera(); } return; } } if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi() || GameOverCtrl.IsShowGameOver) { return; } XkPlayerCtrl playerScript = other.GetComponent <XkPlayerCtrl>(); if (playerScript == null) { return; } if (playerScript.PlayerSt == PlayerTypeEnum.FeiJi && XkGameCtrl.GameJiTaiSt != GameJiTaiType.FeiJiJiTai) { return; } if (playerScript.PlayerSt == PlayerTypeEnum.TanKe && XkGameCtrl.GameJiTaiSt != GameJiTaiType.TanKeJiTai) { return; } if (FeiJiMarkCom != null && TanKeMarkCom != null && IsActiveHeTiCloseUI) { return; } IsClosePlayerUI = true; CheckIsPlayDaoJiShi(); ScreenDanHeiCtrl.GetInstance().ClosePlayerUI(); if (FeiJiMarkCom != null && TanKeMarkCom != null) { IsActiveHeTiCloseUI = true; if (Network.peerType == NetworkPeerType.Client && NetCtrl.GetInstance() != null) { NetCtrl.GetInstance().TryActiveHeTiPlayerEvent(); } ScreenDanHeiCtrl.GetInstance().OpenStartCamera(); ScreenDanHeiCtrl.GetInstance().OpenScreenDanHui(1); GameMode modeVal = XkGameCtrl.GameModeVal; switch (modeVal) { case GameMode.DanJiFeiJi: playerScript.MakePlayerMoveToAiMark(FeiJiMarkCom); break; case GameMode.DanJiTanKe: playerScript.MakePlayerMoveToAiMark(TanKeMarkCom); break; case GameMode.LianJi: if (Network.peerType != NetworkPeerType.Disconnected) { if (XkPlayerCtrl.GetInstanceFeiJi() != null) { XkPlayerCtrl.GetInstanceFeiJi().MakePlayerMoveToAiMark(FeiJiMarkCom); } if (XkPlayerCtrl.GetInstanceTanKe() != null) { XkPlayerCtrl.GetInstanceTanKe().MakePlayerMoveToAiMark(TanKeMarkCom); } } else { XkPlayerCtrl.GetInstanceFeiJi().MakePlayerMoveToAiMark(FeiJiMarkCom); XkPlayerCtrl.GetInstanceTanKe().MakePlayerMoveToAiMark(TanKeMarkCom); } // if (XkGameCtrl.GetInstance().IsServerCameraTest) { // ServerPortCameraCtrl.CloseAllServerPortCamera(); // } break; } } gameObject.SetActive(false); }
IEnumerator PlayGameTime() { if (FinishPanelCtrl.GetInstance() != null && FinishPanelCtrl.GetInstance().CheckIsActiveFinish()) { StopRunGameTime(); yield break; } if (Time.timeScale != 1f) { yield return(new WaitForSeconds(1.0f)); yield return(StartCoroutine(PlayGameTime())); } SetTimeValToImg(); if (GameTimeValCur <= 0 && !AddGameTimeCtrl.GetInstance().GetIsActiveAddTime()) { InsertCoinCtrl.GetInstanceP2().HiddenInsertCoin(); StartBtCtrl.GetInstanceP2().CloseStartBtCartoon(); HeadCtrlPlayer.GetInstanceP1().SetHeadColor(); HeadCtrlPlayer.GetInstanceP2().SetHeadColor(); ResetTimeHMvalToImg(); StopCoroutine(SetTimeHMvalToImg()); StopCoroutine(PlayGameTime()); IsInitPlayTime = false; StartBtCtrl.GetInstanceP1().ResetIsActivePlayer(); StartBtCtrl.GetInstanceP2().ResetIsActivePlayer(); if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode) { gameObject.SetActive(false); RankingCtrl.GetInstance().StopCheckPlayerRank(); //FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel(); if (WaterwheelPlayerNetCtrl.GetInstance().GetPlayerRankNo() == 1) { FinishPanelCtrl.GetInstance().ShowFinishPanel(); } else { FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel(); } } else { GameOverCtrl.GetInstance().ShowContinueGame(); DaoJiShiCtrl.GetInstance().InitPlayDaoJiShi(); } yield break; } yield return(new WaitForSeconds(1.0f)); if (GameTimeValCur <= 10 && GameTimeValCur >= 1 && !TimeTTran.enabled) { TimeTTran.ResetToBeginning(); TimeTTran.enabled = true; TimeTTran.PlayForward(); if (GameTimeValCur == 10) { GameDaoJiShiCtrl.GetInstance().StartPlayDaoJiShi(); CreateAudioSourceTime(); AudioSourceTime.Play(); } } if (!AddGameTimeCtrl.GetInstance().GetIsActiveAddTime()) { GameTimeValCur--; } if (GameTimeValCur <= 0 && TimeTTran.enabled) { TimeTTran.enabled = false; if (AudioSourceTime != null && AudioSourceTime.isPlaying) { AudioSourceTime.Stop(); } } yield return(StartCoroutine(PlayGameTime())); }
// Update is called once per frame void Update() { // if (pcvr.DongGanState == 0) { // return; // } if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi() || (!XkGameCtrl.IsActivePlayerOne && !XkGameCtrl.IsActivePlayerTwo)) { // pcvr.CloseQiNangQian(); // pcvr.CloseQiNangHou(); return; } PlayerSt = PlayerTypeEnum.TanKe; //test. float eulerAngleX = 0f; float eulerAngleZ = 0f; float offsetAngle = 0f; switch (PlayerSt) { case PlayerTypeEnum.TanKe: EulerAngle = transform.eulerAngles; if (EulerAngle.x > 180f) { EulerAngle.x -= 360f; } if (EulerAngle.z > 180f) { EulerAngle.z -= 360f; } eulerAngleX = EulerAngle.x; eulerAngleZ = EulerAngle.z; offsetAngle = 0f; if (Mathf.Abs(eulerAngleX) <= offsetAngle) { //前后气囊放气. if (KeyQHQiNangState != 0) { QiNangStateTK[0] = 0; QiNangStateTK[1] = 0; KeyQHQiNangState = 0; if (KeyZYQiNangState == 0) { pcvr.CloseQiNangQian(); pcvr.CloseQiNangHou(); } } } else if (eulerAngleX < 0f) { //前气囊充气,后气囊放气. if (KeyQHQiNangState != 1) { QiNangStateTK[0] = 1; QiNangStateTK[1] = 0; KeyQHQiNangState = 1; pcvr.OpenQiNangQian(); pcvr.CloseQiNangHou(KeyZYQiNangState); } } else if (eulerAngleX > 0f) { //后气囊充气,前气囊放气. if (KeyQHQiNangState != 2) { QiNangStateTK[0] = 0; QiNangStateTK[1] = 1; KeyQHQiNangState = 2; pcvr.OpenQiNangHou(); pcvr.CloseQiNangQian(KeyZYQiNangState); } } if (Mathf.Abs(eulerAngleZ) <= offsetAngle) { //左右气囊放气. if (KeyZYQiNangState != 0) { QiNangStateTK[2] = 0; QiNangStateTK[3] = 0; KeyZYQiNangState = 0; if (KeyQHQiNangState == 0) { pcvr.CloseQiNangZuo(); pcvr.CloseQiNangYou(); } } } else if (eulerAngleZ < 0f) { //左气囊充气,右气囊放气. if (KeyZYQiNangState != 1) { QiNangStateTK[2] = 1; QiNangStateTK[3] = 0; KeyZYQiNangState = 1; pcvr.OpenQiNangZuo(); pcvr.CloseQiNangYou(KeyQHQiNangState); } } else if (eulerAngleZ > 0f) { //右气囊充气,左气囊放气. if (KeyZYQiNangState != 2) { QiNangStateTK[2] = 0; QiNangStateTK[3] = 1; KeyZYQiNangState = 2; pcvr.OpenQiNangYou(); pcvr.CloseQiNangZuo(KeyQHQiNangState); } } break; case PlayerTypeEnum.FeiJi: EulerAngle = transform.eulerAngles; if (EulerAngle.x > 180f) { EulerAngle.x -= 360f; } if (EulerAngle.z > 180f) { EulerAngle.z -= 360f; } eulerAngleX = EulerAngle.x; eulerAngleZ = EulerAngle.z; offsetAngle = 1f; if (Mathf.Abs(eulerAngleX) <= offsetAngle) { //前后气囊放气. QiNangStateFJ[0] = 0; QiNangStateFJ[1] = 0; } else if (eulerAngleX < 0f) { //前气囊充气,后气囊放气. QiNangStateFJ[0] = 1; QiNangStateFJ[1] = 0; } else if (eulerAngleX > 0f) { //后气囊充气,前气囊放气. QiNangStateFJ[0] = 0; QiNangStateFJ[1] = 1; } if (Mathf.Abs(eulerAngleZ) <= offsetAngle) { //左右气囊放气. QiNangStateFJ[2] = 0; QiNangStateFJ[3] = 0; } else if (eulerAngleZ > 0f) { //右气囊充气,左气囊放气. QiNangStateFJ[2] = 0; QiNangStateFJ[3] = 1; } else if (eulerAngleZ < 0f) { //左气囊充气,右气囊放气. QiNangStateFJ[2] = 1; QiNangStateFJ[3] = 0; } break; } }
void Update() { UpdateDanHuaPingJi(); if (Time.time - m_TimeStart >= m_TimeCreateChouJiang && IsCreateChouJiang == false) { IsCreateChouJiang = true; //创建玩家抽奖界面. if (SSUIRoot.GetInstance().m_GameUIManage != null) { SSPingJiData.PingJiLevel chouJiangPingJi = SSPingJiData.PingJiLevel.A; if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_PingJiData != null) { chouJiangPingJi = XkGameCtrl.GetInstance().m_PingJiData.m_ChouJiangPingJi; } //是否可以抽奖. IsPlayerCanChouJiang = m_PlayerPingJiLevel < chouJiangPingJi ? false : true; if (IsPlayerCanChouJiang == true) { //淡化隐藏评级界面. StartDanHuaHiddenPingJiPanel(); //允许抽奖时才可以展示抽奖界面. SSUIRoot.GetInstance().m_GameUIManage.CreatPlayerChouJiangUI(m_IndexPlayer, IsPlayerCanChouJiang); } } } if (Time.time - m_TimeStart >= m_TimeHidden && IsRemoveSelf == false && IsPlayerCanChouJiang == false) { //玩家分数不足,无法进行抽奖. SSPingJiData.PingJiLevel chouJiangPingJi = SSPingJiData.PingJiLevel.A; if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_PingJiData != null) { chouJiangPingJi = XkGameCtrl.GetInstance().m_PingJiData.m_ChouJiangPingJi; } if (m_PlayerPingJiLevel < chouJiangPingJi) { //玩家分数不足,无法进行抽奖. //玩家币值是否足够. bool isPlayerCoinEnough = XKGlobalData.GetPlayerCoinIsEnough(m_IndexPlayer); if (isPlayerCoinEnough == true) { //玩家币值充足. bool isCanXuMing = true; if (XKGlobalData.GetInstance().m_SSGameXuMingData != null) { //当前机位是否可以续命. isCanXuMing = XKGlobalData.GetInstance().m_SSGameXuMingData.GetIsCanXuMing(m_IndexPlayer); } if (isCanXuMing == true) { //玩家可以续命. if (XkGameCtrl.GetIsActivePlayer(m_IndexPlayer) == true) { //玩家首次GG之后,没有设置信息. //设置玩家状态信息. XkGameCtrl.SetActivePlayer(m_IndexPlayer, false); } //是否可以继续进行免费游戏. bool isCanMianFeiPlayGame = false; if (XKGlobalData.GetInstance() != null) { isCanMianFeiPlayGame = XKGlobalData.GetInstance().GetIsCanMianFeiPlayGame(m_IndexPlayer); } if (isCanMianFeiPlayGame == false) { //玩家不可以继续进行免费游戏. //玩家币值充足,需要对微信用户进行扣费. if (pcvr.GetInstance().m_HongDDGamePadInterface != null) { //此时需要对微信付费玩家进行红点点账户扣费. pcvr.GetInstance().m_HongDDGamePadInterface.OnNeedSubPlayerMoney(m_IndexPlayer); } //玩家付费激活游戏. if (pcvr.GetInstance() != null && pcvr.GetInstance().m_HongDDGamePadInterface != null) { //发送玩家付费激活游戏的登录信息给服务器. pcvr.GetInstance().m_HongDDGamePadInterface.SendPlayerFuFeiActiveGameInfoToServer(m_IndexPlayer); } } else { //玩家可以继续进行免费游戏. if (pcvr.GetInstance() != null && pcvr.GetInstance().m_HongDDGamePadInterface != null) { //发送玩家首次免费游戏登录信息给服务器. pcvr.GetInstance().m_HongDDGamePadInterface.SendPlayerShouCiMianFeiInfoToServer(m_IndexPlayer); } //减少玩家免费次数. XKGlobalData.GetInstance().SubMianFeiNum(m_IndexPlayer); } //当前机位续命一次. if (XKGlobalData.GetInstance().m_SSGameXuMingData != null) { XKGlobalData.GetInstance().m_SSGameXuMingData.AddXuMingCount(m_IndexPlayer); } } if (pcvr.GetInstance().m_HongDDGamePadInterface != null) { //此时需要对微信玩家进行的游戏时长信息发送给红点点服务器. pcvr.GetInstance().m_HongDDGamePadInterface.SetPlayerEndGameTime(m_IndexPlayer); } if (SSUIRoot.GetInstance().m_GameUIManage != null) { //删除玩家评级界面. SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerPingJiUI(m_IndexPlayer); } SSPlayerScoreManage playerScoreManage = SSPlayerScoreManage.GetInstance(m_IndexPlayer); if (playerScoreManage != null) { //当删除玩家评级界面的同时重置距玩家还差多少分数. playerScoreManage.OnRemovePlayerPingJiPanel(); } } else { //玩家币值不足. //玩家币值不足,需要对微信用户进行扣费. if (pcvr.GetInstance().m_HongDDGamePadInterface != null) { if (pcvr.GetInstance().m_HongDDGamePadInterface.GetPlayerIsFuFeiActiveGame(m_IndexPlayer) == true) { //付费激活游戏的玩家. //此时需要对微信付费玩家进行红点点账户扣费. pcvr.GetInstance().m_HongDDGamePadInterface.OnNeedSubPlayerMoney(m_IndexPlayer); } } if (pcvr.GetInstance().m_HongDDGamePadInterface != null) { //此时需要对微信玩家进行的游戏时长信息发送给红点点服务器. pcvr.GetInstance().m_HongDDGamePadInterface.SetPlayerEndGameTime(m_IndexPlayer); } //设置玩家状态信息. XkGameCtrl.SetActivePlayer(m_IndexPlayer, false); //玩家评级过低,显示倒计时界面. DaoJiShiCtrl daoJiShiCom = DaoJiShiCtrl.GetInstance(m_IndexPlayer); if (daoJiShiCom != null) { daoJiShiCom.StartPlayDaoJiShi(); } if (SSUIRoot.GetInstance().m_GameUIManage != null) { //删除玩家评级界面. SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerPingJiUI(m_IndexPlayer); } SSPlayerScoreManage playerScoreManage = SSPlayerScoreManage.GetInstance(m_IndexPlayer); if (playerScoreManage != null) { //当删除玩家评级界面的同时重置距玩家还差多少分数. playerScoreManage.OnRemovePlayerPingJiPanel(); } } //if (SSUIRoot.GetInstance().m_GameUIManage != null) //{ // //删除玩家游戏抽奖界面UI. // SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerChouJiangUI(m_IndexPlayer, 0f); //} } //else //{ // //玩家评级达到抽奖水平,显示抽奖界面. // if (SSUIRoot.GetInstance().m_GameUIManage != null) // { // SSUIRoot.GetInstance().m_GameUIManage.CreatPlayerChouJiangUI(m_IndexPlayer); // } //} //if (SSUIRoot.GetInstance().m_GameUIManage != null) //{ // //删除玩家评级界面. // SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerPingJiUI(m_IndexPlayer); //} } }
void checkPlayerMoveDir() { if (IsCheckMoreNextPath) { CheckMoreNextPathDir(); return; } if (AimMarkTran == null) { return; } Vector3 vecA = AimMarkTran.forward; Vector3 vecB = AimMarkTran.position - PlayerTran.position; Vector3 vecC = PlayerTran.forward; vecA.y = vecB.y = vecC.y = 0f; float cosAC = Vector3.Dot(vecA, vecC); float cosAB = Vector3.Dot(vecA, vecB); float cosBC = Vector3.Dot(vecB, vecC); if (cosAC < 0f && cosBC < 0f && !GameOverCtrl.GetInstance().CheckIsActiveOver()) { if (!IsDonotTurnRight && !IsDonotTurnLeft && (AutoFireScript.PathKeyState == 0 || IntoPuBuCtrl.IsIntoPuBu || PlayerAutoFire.IsRestartMove)) { if (bIsTurnRight) { IsDonotTurnRight = true; IsDonotTurnLeft = false; } else if (bIsTurnLeft) { IsDonotTurnRight = false; IsDonotTurnLeft = true; } } SetIsDirWrong(true); } else { IsDonotTurnRight = false; IsDonotTurnLeft = false; SetIsDirWrong(false); if (cosBC <= 0f && cosAB <= 0f) { ParentPath = AimMarkTran.parent; //next path AiMark markScript = AimMarkTran.GetComponent <AiMark>(); if (markScript == null) { return; } mBakeTimePointPos = AimMarkTran.position; mBakeTimePointRot = AimMarkTran.forward; AutoFireScript.SetPlayerPreMark(AimMarkTran); int conutTmp = AimMarkTran.parent.childCount - 1; int markCount = markScript.getMarkCount(); AimMarkTran = markScript.mNextMark; if (markCount == conutTmp) { if (AimMarkTran == null) { //player run to end this.enabled = false; // IsRunToEndPoint = true; DaoJiShiCtrl.GetInstance().StopDaoJiShi(); GameOverCtrl.GetInstance().HiddenContinueGame(); FinishPanelCtrl.GetInstance().ShowFinishPanel(); AutoFireScript.SetPlayerMvSpeed(0f); //AutoFireScript.CloseWaterParticle(); return; } AiPathCtrlTran = AimMarkTran.parent; //next path AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>()); if (ParentPath != null) { AiParentPathScript = ParentPath.GetComponent <AiPathCtrl>(); if (AiParentPathScript.GetNextPathNum() > 1) { IsCheckMoreNextPath = true; } } } } } }
void CheckMoreNextPathDir() { if (AiParentPathScript == null) { return; } bool isDirRight = false; //int [] DirTag = new int[3]; //DirTag: 0 -> dir is wrong, 1 -> dir is right. Transform [] aimMarkTranArray = new Transform[3]; aimMarkTranArray[0] = AiParentPathScript.mNextPath1; aimMarkTranArray[1] = AiParentPathScript.mNextPath2; aimMarkTranArray[2] = AiParentPathScript.mNextPath3; Transform aimMarkTran = null; Vector3 vecA = Vector3.zero; Vector3 vecB = Vector3.zero; Vector3 vecC = Vector3.zero; float cosAC = 0f; float cosAB = 0f; float cosBC = 0f; for (int i = 0; i < 3; i++) { if (aimMarkTranArray[i] == null) { continue; } aimMarkTran = aimMarkTranArray[i].GetChild(0); if (aimMarkTran == null) { continue; } vecA = aimMarkTran.forward; vecB = aimMarkTran.position - PlayerTran.position; vecC = PlayerTran.forward; vecA.y = vecB.y = vecC.y = 0f; cosAC = Vector3.Dot(vecA, vecC); cosAB = Vector3.Dot(vecA, vecB); cosBC = Vector3.Dot(vecB, vecC); if (cosAC < 0f && cosBC < 0f) { //dir is wrong. } else { isDirRight = true; float disAB = Vector3.Distance(vecB, Vector3.zero); if (cosAB <= 0f && disAB < 15f) { IsCheckMoreNextPath = false; ParentPath = aimMarkTran.parent; AimMarkTran = aimMarkTran; AiMark markScript = AimMarkTran.GetComponent <AiMark>(); if (markScript == null) { continue; } mBakeTimePointPos = AimMarkTran.position; mBakeTimePointRot = AimMarkTran.forward; AutoFireScript.SetPlayerPreMark(AimMarkTran); int conutTmp = AimMarkTran.parent.childCount - 1; int markCount = markScript.getMarkCount(); AimMarkTran = markScript.mNextMark; AiPathCtrlTran = AimMarkTran.parent; AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>()); if (markCount == conutTmp) { if (AimMarkTran == null) { //player run to end this.enabled = false; DaoJiShiCtrl.GetInstance().StopDaoJiShi(); GameOverCtrl.GetInstance().HiddenContinueGame(); FinishPanelCtrl.GetInstance().ShowFinishPanel(); AutoFireScript.SetPlayerMvSpeed(0f); //AutoFireScript.CloseWaterParticle(); return; } AiPathCtrlTran = AimMarkTran.parent; //next path AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>()); if (ParentPath != null) { AiParentPathScript = ParentPath.GetComponent <AiPathCtrl>(); if (AiParentPathScript.GetNextPathNum() > 1) { IsCheckMoreNextPath = true; } } } return; } } } if (isDirRight && !AutoFireScript.CheckPlayerIsMoveDirWrong()) { IsDonotTurnRight = false; IsDonotTurnLeft = false; SetIsDirWrong(false); } else { if (!IsDonotTurnRight && !IsDonotTurnLeft && (AutoFireScript.PathKeyState == 0 || IntoPuBuCtrl.IsIntoPuBu || PlayerAutoFire.IsRestartMove)) { if (bIsTurnRight) { IsDonotTurnRight = true; IsDonotTurnLeft = false; } else if (bIsTurnLeft) { IsDonotTurnRight = false; IsDonotTurnLeft = true; } } SetIsDirWrong(true); } }
// Update is called once per frame void Update() { if (pcvr.DongGanState == 0) { return; } if (!GameTimeCtrl.GetInstance().GetIsCheckTimeSprite()) { return; } if (!XkGameCtrl.GetIsActivePlayer(IndexPlayer)) { return; } if (DaoJiShiCtrl.GetInstance(IndexPlayer).GetIsPlayDaoJishi()) { return; } //pcvr.OpenQiNangQian(IndexPlayer);//test. //return; Vector3 eulerAngle = transform.eulerAngles; if (eulerAngle.x > 180f) { eulerAngle.x -= 360f; } if (eulerAngle.z > 180f) { eulerAngle.z -= 360f; } float eulerAngleX = eulerAngle.x; float eulerAngleZ = eulerAngle.z; float offsetAngle = 0.5f; if (Mathf.Abs(eulerAngleX) <= offsetAngle) { //前后气囊放气. if (KeyQHQiNangState != 0) { KeyQHQiNangState = 0; if (KeyZYQiNangState == 0) { pcvr.CloseQiNangQian(IndexPlayer); pcvr.CloseQiNangHou(IndexPlayer); } } } else if (eulerAngleX < 0f) { //前气囊充气,后气囊放气. if (KeyQHQiNangState != 1) { KeyQHQiNangState = 1; pcvr.OpenQiNangQian(IndexPlayer); pcvr.CloseQiNangHou(IndexPlayer, KeyZYQiNangState); } } else if (eulerAngleX > 0f) { //后气囊充气,前气囊放气. if (KeyQHQiNangState != 2) { KeyQHQiNangState = 2; pcvr.OpenQiNangHou(IndexPlayer); pcvr.CloseQiNangQian(IndexPlayer, KeyZYQiNangState); } } int indexVal = (int)IndexPlayer - 1; eulerAngleZ = -InputEventCtrl.PlayerFX[indexVal]; if (XKGlobalData.GameVersionPlayer != 0) { indexVal -= 2; eulerAngleZ = -InputEventCtrl.PlayerFX[indexVal]; } offsetAngle = 0.1f; if (Mathf.Abs(eulerAngleZ) <= offsetAngle) { //左右气囊放气. if (KeyZYQiNangState != 0 && Time.realtimeSinceStartup - TimeLastZY >= MinTimeZY) { KeyZYQiNangState = 0; TimeLastZY = Time.realtimeSinceStartup; if (KeyQHQiNangState == 0) { pcvr.CloseQiNangZuo(IndexPlayer); pcvr.CloseQiNangYou(IndexPlayer); } } } else if (eulerAngleZ < 0f) { //左气囊充气,右气囊放气. if (KeyZYQiNangState != 1 && Time.realtimeSinceStartup - TimeLastZY >= MinTimeZY) { KeyZYQiNangState = 1; TimeLastZY = Time.realtimeSinceStartup; pcvr.OpenQiNangZuo(IndexPlayer); pcvr.CloseQiNangYou(IndexPlayer, KeyQHQiNangState); } } else if (eulerAngleZ > 0f) { //右气囊充气,左气囊放气. if (KeyZYQiNangState != 2 && Time.realtimeSinceStartup - TimeLastZY >= MinTimeZY) { KeyZYQiNangState = 2; TimeLastZY = Time.realtimeSinceStartup; pcvr.OpenQiNangYou(IndexPlayer); pcvr.CloseQiNangZuo(IndexPlayer, KeyQHQiNangState); } } }