public GameObject PlayJiefengTween(Transform tweenPos, Transform parent, EPlayerPositionType posType) { //Vector3 initPos = Vector3.zero; //Vector3 targetPos = Vector3.zero; //switch (posType) //{ // case EPlayerPositionType.ELeft: // initPos = new Vector3(750, 0, 0); // targetPos = Vector3.zero; // break; // case EPlayerPositionType.ERight: // initPos = new Vector3(-750, 0, 0); // targetPos = Vector3.zero; // break; // case EPlayerPositionType.ESelf: //自己接风的情况,对面接风数字票到自己身上 // initPos = new Vector3(0, 460, 0); // targetPos = Vector3.zero; // break; // case EPlayerPositionType.ETop: // initPos = new Vector3(0, -400, 0); // targetPos = Vector3.zero; // break; //} string path = GlobalData.mLocalViewAnimationPath + "AnimCardType"; GameObject jiefeng = GetBoomAnimGm(parent, path); PlayPlayingAnim(jiefeng, "jiefeng"); return(jiefeng); }
void CheckPlayjiefengTween(bool isJiefeng, EPlayerPositionType posType) { if (isJiefeng) { TweenManager.Instance.PlayJiefengTween(playingView.GetCardsParentPosContainer(posType), playingView.GetLightParentPosContainer(posType), posType); } }
Image voiceTweenSpr;//有spr 有动画 有语音 三个组件 //public void Start() //{ // StartCoroutine(WaitOneDelta("有动画 有语音 三个组件")); //} public IEnumerator WaitOneDelta(string text = null, string voiceName = null, EPlayerPositionType type = EPlayerPositionType.ELeft) { messageLab.text = text; yield return(null); //获取其中的另一个对象 Image bg = messageLab.transform.parent.GetComponent <Image>(); float time = 3.0f;//3秒后销毁自己 //emoticonSpr.gameObject.SetActive(emoticonname != null); messageLab.gameObject.SetActive(text != null && text.Length > 0); voiceTweenSpr.gameObject.SetActive(voiceName != null); Debug.Log("chat开始位置:" + transform.localPosition); //整体旋转 if (type == EPlayerPositionType.ERight) { messageLab.transform.rotation = Quaternion.Euler(Vector3.up * 180); this.transform.rotation = Quaternion.Euler(Vector3.up * 180); } if (text != null) { //为了显示的效果,根据不同的位置进行调整 RectTransform rectTrans = bg.GetComponent <RectTransform>(); rectTrans.sizeDelta = new Vector2(messageLab.rectTransform.rect.width + 50, 61); bg.GetComponent <RectTransform>().anchoredPosition = new Vector3(messageLab.rectTransform.rect.width / 2 + 77, 30); Debug.Log("chat结束位置:" + transform.localPosition); if (type == EPlayerPositionType.ETop) { bg.GetComponent <RectTransform>().anchoredPosition -= new Vector2(0, 10); } } StartCoroutine(DestroySelf(time, type)); }
void ShowResetCardNum(EPlayerPositionType type, GameObject m, int count) { m.SetActive(count <= 10 ? true : false); if (count <= 10) { if (!warningPlayerDic[type]) { if (type == EPlayerPositionType.ESelf) { AudioManager.Instance.PlayWarningAudio(); //声音只响一次 } warningPlayerDic[type] = true; } if (count == 0) { m.SetActive(false); } } if (m.activeSelf) { m.transform.GetChild(0).GetComponent <Text>().text = count.ToString(); } }
void SetArrowPlayer(EPlayerPositionType posType) { if (!(PlayingGameInfo.Instance.mPlayingStatus == EPlayingStatus.ETribute)) { CheckOpenClock(); } clockObj.GetComponent <ClockRun>().ResetStartRun(posType); switch (posType) { case EPlayerPositionType.ESelf: clockSpr.transform.localPosition = new Vector3(0, -50, 0); break; case EPlayerPositionType.ETop: clockSpr.transform.localPosition = new Vector3(0, 50, 0); break; case EPlayerPositionType.ELeft: clockSpr.transform.localPosition = new Vector3(-425, 25, 0); break; case EPlayerPositionType.ERight: clockSpr.transform.localPosition = new Vector3(400, 25, 0); break; } }
/// <summary> /// 根据对象名字中带有的left等位置信息判断位置,获取对应的id /// </summary> /// <param name="gmName"></param> /// <returns></returns> public uint GetIdByName(string gmName) { EPlayerPositionType nowPos = EPlayerPositionType.ENull; Debug.Log("当前点击的头像名:——————————" + gmName); if (gmName.ToLower().Contains("left")) { nowPos = EPlayerPositionType.ELeft; return((uint)RoomInfo.Instance.mPlayersDic[nowPos].player_id); } else if (gmName.ToLower().Contains("right")) { nowPos = EPlayerPositionType.ERight; return((uint)RoomInfo.Instance.mPlayersDic[nowPos].player_id); } else if (gmName.ToLower().Contains("top")) { nowPos = EPlayerPositionType.ETop; return((uint)RoomInfo.Instance.mPlayersDic[nowPos].player_id); } else { nowPos = EPlayerPositionType.ESelf; return((uint)PlayerInfo.Instance.mPlayerPid); } }
public MsgPlayerInfo GetPlayerInfoByPos(EPlayerPositionType posType) { foreach (var value in playersDic) { if (value.Value != null) { if (value.Key == posType) { return(value.Value); } } } if (EPlayerPositionType.ESelf == posType) { MsgPlayerInfo playerInfo = new MsgPlayerInfo(); playerInfo.head_portrait = PlayerInfo.Instance.mPlayerData.headPortrait; playerInfo.money = (uint)PlayerInfo.Instance.mPlayerData.money; playerInfo.name = PlayerInfo.Instance.mPlayerData.name; playerInfo.player_id = (uint)PlayerInfo.Instance.mPlayerData.pid; playerInfo.teamType = (int)EPlayersTeam.ETeamA; return(playerInfo); } return(null); }
void UseTalk(LocalNotification e) { if (e == null) { Debug.LogError("语音为空"); return; } ArgsTalk args = e.param as ArgsTalk; Debug.Log("玩家" + args.talkPid + "正在发送语音"); EPlayerPositionType type = EPlayerPositionType.ENull; if (args.talkPid == PlayerInfo.Instance.mPlayerPid) { type = EPlayerPositionType.ESelf; } else { type = RoomInfo.Instance.GetPlayerPosById(args.talkPid); } GameObject gm = UIManagers.Instance.GetSingleUI(UIType.ChatMessageTip); gm.transform.localScale = Vector3.one; gm.transform.SetParent(GetHeadPos(type)); gm.transform.localPosition = Vector3.zero; PlayerInfo.Instance.AddNewEmoticon(type, gm, false); if (args.voiceName != null && args.voiceName.Length != 0) { StartCoroutine(gm.GetComponent <UIChatMessagTipView>().WaitOneDelta(null, args.voiceName, type)); } }
public void PlayKangGongTributeTween(EPlayerPositionType posType) { #region spr设置开始位置和结束位置 float endValue = 0; bool isLeftOrRight = false; bool isSelfOrTop = false; Sequence mySequence = DOTween.Sequence(); se = mySequence; SetSprName("card_0_17", true); if (posType == EPlayerPositionType.ETop) { spr.transform.localPosition = new Vector3(0, 130, 0); endValue = -100; isSelfOrTop = true; } else if (posType == EPlayerPositionType.ESelf) { spr.transform.localPosition = new Vector3(0, -200, 0); endValue = 0; isSelfOrTop = true; } else if (posType == EPlayerPositionType.ELeft) { spr.transform.localPosition = new Vector3(-300, 0); endValue = 100; isLeftOrRight = true; } else if (posType == EPlayerPositionType.ERight) { spr.transform.localPosition = new Vector3(300, 0); endValue = -100; isLeftOrRight = true; } #endregion #region -------------大王移动 float duration = 0.25f; if (isLeftOrRight) { mySequence.Append(spr.transform.DOLocalMoveX(endValue, duration * 4f)).SetEase(Ease.OutQuad); } else if (isSelfOrTop) { mySequence.Append(spr.transform.DOLocalMoveY(endValue, duration * 4)).SetEase(Ease.OutQuad); } //抗贡字 mySequence.Append(DOTween.ToAlpha(() => spr.color, x => spr.color = x, 0, 0.5f)); mySequence.AppendCallback( delegate { SetSprName("pk_kanggong"); }); mySequence.Append(DOTween.ToAlpha(() => spr.color, x => spr.color = x, 1, 0.5f)); mySequence.AppendInterval(0.7f); mySequence.AppendCallback(delegate { Destroy(this.gameObject); }); mySequence.Play(); #endregion }
private Vector3 GetLightCardEndPos(bool isSamePlayer, EPlayerPositionType type, Transform item) { //1,8为阴影误差 Vector2 size = item.GetComponent <RectTransform>().rect.size; Vector3 endPos = new Vector3(); switch (type) { case EPlayerPositionType.ESelf: case EPlayerPositionType.ETop: case EPlayerPositionType.ELeft: float endX = -50 + 62 / 2 / 2 + 8; //parent.width/2+card.width/2/2[scale原来的0.5] float endY = -50 + 70 / 2 / 2 + 8; endPos = new Vector3(endX, endY, 0); if (isSamePlayer) //true了肯定是第二张 { endPos += new Vector3(30, 0, 0); //62 / 2 >>31,35为缩小的扑克牌大小 误差【阴影】为1 } break; case EPlayerPositionType.ERight: float endXR = /*item.parent.localPosition.x*/ +50 - 62 / 2 / 2 - 8; //parent.width+card.width/2/2[scale原来的0.5] float endYR = /*item.parent.localPosition.y*/ -50 + 70 / 2 / 2 + 8; endPos = new Vector3(endXR, endYR, 0); if (isSamePlayer) //true了肯定是第二张 { endPos -= new Vector3(31 - 1, 0, 0); } break; } return(endPos); }
//显示其他人出牌的信息 void SetOtherData(EPlayerPositionType type, List <uint> list, TGuanDanCT putOutType) { //为解决 玩家不出的bug int lastCardCount = Mathf.Clamp(playerRestCardNum[type] - list.Count, 0, GlobalData.mPlayerOwnCardCount); //(减完当前牌)剩余牌的张数 SetPlayerCardsPos(type, list, putOutType); SetRestCardNum(lastCardCount, type); }
/// <summary> /// 设置自己牌的初始 /// </summary> /// <param name="idx"></param> /// <param name="id"></param> public void SetCardData(uint id) { this.mId = id; SetName(); this.posType = EPlayerPositionType.ESelf; SetSprName(id, ""); SwitchStatus(ECardStatus.ENormal); }
public void RemoveEmoticonGmFormDic(EPlayerPositionType pos) { if (dicEmoticonPos.ContainsKey(pos)) { GameObject.Destroy(dicEmoticonPos[pos]);//删除当前的表情 dicEmoticonPos[pos] = null; } }
private void TweenLightCard() { uint lightCardId = PlayingGameInfo.Instance.mGameInfo.light_card; var lightPlayerList = PlayingGameInfo.Instance.mGameInfo.light_player_id; Debug.Log("Show Light Card:" + lightCardId + "人数:" + lightPlayerList.Count); if (lightPlayerList.Count == 0) //没有亮牌 { ShowStartGameBtn(); return; } else { GameObject singleCardPrefab = ResourceManager.Instance.LoadAsset <GameObject>(UIType.SingleCard.Path); int listCardCount = 1; //转蛋模式 和 掼蛋第一局 有明牌 if (RoomInfo.Instance.IsZhuandanGameType) { listCardCount = 2; } else if (PlayingGameInfo.Instance.mGameInfo.game_index == 1) { listCardCount = 1; } //一个人有两张明牌的情况 bool isSamePlayerLight = false; //listCardCount = 2;//测试 //烟雾也用的这个位置 float posY = 180 - 90 / 2 + 72 / 2;//头像位置y轴-头像height/2+card的Height/2 for (int i = 0; i < listCardCount; i++) { if (i == 1) { isSamePlayerLight = lightPlayerList.Count == 1; } ulong curPlayerId = isSamePlayerLight ? lightPlayerList[0] : lightPlayerList[i]; EPlayerPositionType playerPos = RoomInfo.Instance.GetPlayerPositionType(curPlayerId); GameObject playerPosGm = GoldFiledManager.Instance.GetPlayerPosGameobject(playerPos); GameObject item = GameObject.Instantiate(singleCardPrefab, this.transform); item.transform.localScale = Vector3.one; float posX = i == 0 ? -31 : 31;//small 的宽度62/2 if (listCardCount == 1) { posX = 0; //掼蛋一张明牌的时候位置为0 } item.transform.localPosition = new Vector3(posX, posY, 0); item = SetLightCardInfo(lightCardId, item, playerPosGm.transform); Vector3 itemEndPos = GetLightCardEndPos(isSamePlayerLight, playerPos, item.transform); StartLightCardTween(item, itemEndPos); } } }
public void PlayKangGongTween(Transform parent, EPlayerPositionType posType) { GameObject item = GameObject.Instantiate(ResourceManager.Instance.LoadAsset <GameObject>("PlayingCardTween")); item.transform.SetParent(parent); UIPlayingCardTween itemTween = item.GetComponent <UIPlayingCardTween>(); itemTween.PlayKangGongTributeTween(posType);//删除了一个参数 }
public void ResetStartRun(EPlayerPositionType type) { if (this.curPosTYpe != type) { curTime = 0; startRunId = 1; frameCount = 0; } this.curPosTYpe = type; }
public void AddPlayerPosGMToDic(EPlayerPositionType pos, GameObject posGm) { if (dicPlayerPosGm.ContainsKey(pos)) { mDicPlayerPosGm[pos] = posGm; } else { mDicPlayerPosGm.Add(pos, posGm); } }
public GameObject GetPlayerPosGameobject(EPlayerPositionType playerPosType) { foreach (var v in dicPlayerPosGm) { if (v.Key == playerPosType) { return(v.Value); } } return(null); }
/// <summary> /// 不出,缩放效果 /// </summary> public void PlayOtherOutTween(EPlayerPositionType PosType) { Vector3 targetScale = Vector3.one; float tweenTime = 0.25f; Sequence mySequence = DOTween.Sequence(); //Scale mySequence.Append(this.transform.DOScale(targetScale * 0.5f, tweenTime)).SetEase(Ease.OutCubic); //放大 mySequence.Append(this.transform.DOScale(targetScale * GlobalData.mPutOutCardRate, tweenTime)); mySequence.Play(); }
public void DestroyEmoticon(GameObject emoticonTweenGm, EPlayerPositionType type) { se = DOTween.Sequence(); float destroyTime = TweenManager.Instance.GetAnimatorTime(emoticonTweenGm, "play"); se.AppendInterval(destroyTime * 2); se.AppendCallback(delegate { RemoveEmoticonGmFormDic(type); se = null; }); }
void CopyClass(MsgPlayerInfo info, EPlayerPositionType posType) { if (playersDic[posType] == null) { return; } info.head_portrait = playersDic[posType].head_portrait; info.money = playersDic[posType].money; info.name = playersDic[posType].name; info.player_id = playersDic[posType].player_id; info.sex = playersDic[posType].sex; info.teamType = playersDic[posType].teamType; }
void UseEmoticon(LocalNotification e) { Debug.Log("表情发送成功"); if (e == null) { return; } ArgsEmoticonInfo args = e.param as ArgsEmoticonInfo; EPlayerPositionType type = EPlayerPositionType.ENull; //表情 if (args.action_id == PlayerInfo.Instance.mPlayerPid) { type = EPlayerPositionType.ESelf; } else { type = RoomInfo.Instance.GetPlayerPosById(args.action_id); } if (args.emoticonId != 0) { GameObject emoticonTweenGm = GameObject.Instantiate(ResourceManager.Instance.LoadAsset <GameObject>(GlobalData.mLocalEmoticonPrefabPath + TweenManager.Instance.GetEmotcionPrefabName(args.emoticonId))); emoticonTweenGm.name = TweenManager.Instance.GetEmotcionPrefabName(args.emoticonId); if (args.action_id == PlayerInfo.Instance.mPlayerPid) { type = EPlayerPositionType.ESelf; emoticonTweenGm.transform.SetParent(selfHeadSpr.transform); } else { emoticonTweenGm.transform.SetParent(this.GetHeadPos(type)); } emoticonTweenGm.transform.localScale = Vector3.one * 0.6f; emoticonTweenGm.transform.localPosition = Vector3.zero + new Vector3(0, -13, 0); PlayerInfo.Instance.AddNewEmoticon(type, emoticonTweenGm, true); TweenManager.Instance.mEmoticonList.Add(emoticonTweenGm); return; } //语音和文字 GameObject gm = UIManagers.Instance.GetSingleUI(UIType.ChatMessageTip); gm.transform.localScale = Vector3.one; gm.transform.SetParent(GetHeadPos(type)); gm.transform.localPosition = Vector3.zero; PlayerInfo.Instance.AddNewEmoticon(type, gm, false); if (args.message != null && args.message.Length != 0) { StartCoroutine(gm.GetComponent <UIChatMessagTipView>().WaitOneDelta(args.message, null, type)); } }
void RemovePlayerToNull(uint id) { EPlayerPositionType tempType = EPlayerPositionType.ENull; foreach (var t in playersDic) { if (t.Value != null && t.Value.player_id == id) { tempType = t.Key; } } playersDic[tempType] = null; }
public void AddLastCleanPlayerDic(EPlayerPositionType type) { if (lastCleanPlayerInfoDic == null) { lastCleanPlayerInfoDic = new Dictionary <EPlayerPositionType, LastCleanPlayerInfomation>(); } if (!lastCleanPlayerInfoDic.ContainsKey(type)) { LastCleanPlayerInfomation info = new LastCleanPlayerInfomation(); info.idx = 1; info.totaIdxTimes = 4 - lastCleanPlayerInfoDic.Count; lastCleanPlayerInfoDic.Add(type, info); } }
int GetInitDepthByPlayerPosition(EPlayerPositionType type) { switch (type) { case EPlayerPositionType.ERight: return(10); case EPlayerPositionType.ETop: return(20); case EPlayerPositionType.ELeft: return(30); } return(20); }
public Transform GetCardsParentPosContainer(EPlayerPositionType type) { switch (type) { case EPlayerPositionType.ELeft: return(playerPosLeft); case EPlayerPositionType.ERight: return(playerPosRight); case EPlayerPositionType.ETop: return(playerPosTop); } return(playerPosRight); }
public EAudioStyle GetPlayerAudioStyleByPlayerPos(EPlayerPositionType type) { foreach (var v in playersDic) { if (v.Key == type) { return(v.Value.sex == 1 ? EAudioStyle.ENormalMan : EAudioStyle.ENormalWoman); } } if (type == EPlayerPositionType.ESelf) { return(PlayerInfo.Instance.GetSexIsMan ? EAudioStyle.ENormalMan : EAudioStyle.ENormalWoman); } return(EAudioStyle.ENormalWoman); }
/// <summary> /// 用于单纯同步数据 /// </summary> /// <param name="type"></param> /// <param name="list"></param> void RefreshPlayerCards(EPlayerPositionType type, List <uint> list, bool isLast) { ClearPutOutingCard(type); Transform parentContainer = GetCardsParentPosContainer(type); float PosY = 0; if (EPlayerPositionType.ESelf == type) { PosY = GlobalData.mSelectCardToTargetPos.y; } else if (EPlayerPositionType.ERight == type && isLast) { PosY = -100; } List <SingleCard> singleCardList = new List <SingleCard>(); if (list.Count > 0) { int count = list.Count; for (int i = 0; i < count; i++) { GameObject item = GameObject.Instantiate(singleCardPrefab) as GameObject; item.transform.SetParent(parentContainer); item.transform.localPosition = new Vector3(GetOtherCardsPos(type, i, count).x, PosY, 0); item.transform.localScale = isLast ? Vector3.one * 0.5f : Vector3.one; SingleCard singleCard = item.transform.GetComponent <SingleCard>(); singleCard.SetOtherData(list[i], type, true); singleCardList.Add(singleCard); } } else { GameObject item = GameObject.Instantiate(singleCardPrefab) as GameObject; item.transform.SetParent(parentContainer); item.transform.localPosition = new Vector3(GetOtherCardsPos(type, 0, 1).x, PosY, 0); item.transform.localScale = isLast ? Vector3.one * 0.5f : Vector3.one; SingleCard singleCard = item.transform.GetComponent <SingleCard>(); singleCard.SetOtherData(GlobalData.mRefuseCardNumId, type, true); } if (isLast) { List <List <SingleCard> > cardDic = new List <List <SingleCard> >(); SelfCardsManager.Instance.InitRefreshRealCardDic(singleCardList, cardDic); SetLastCardPosAndDepth(cardDic); // 刷新底部牌 } }
void ShowOffLinePlayer(EPlayerPositionType posType) { switch (posType) { case EPlayerPositionType.ELeft: leftHeadSpr.transform.GetChild(1).gameObject.SetActive(true); break; case EPlayerPositionType.ERight: rightHeadSpr.transform.GetChild(1).gameObject.SetActive(true); break; case EPlayerPositionType.ETop: topHeadSpr.transform.GetChild(1).gameObject.SetActive(true); break; } }
/// <summary> /// 获取当前玩家上家是否是游,如果是,则返回上家Pos /// </summary> /// <param name="curPosType"></param> /// <returns></returns> public EPlayerPositionType GetNeedLastClearOutCards(EPlayerPositionType curPosType) { if (IsHavePlayerGameClean()) { int posId = (int)curPosType; posId++; if (posId > 4) { posId = 1; } if (lastCleanPlayerInfoDic.ContainsKey((EPlayerPositionType)posId)) { return((EPlayerPositionType)posId); } } return(curPosType); }