public static FightUIData getInstance() { if (instance == null) { instance = new FightUIData(); } return(instance); }
public static FightUIData getInstance() { if (instance == null) { instance = new FightUIData(); } return instance; }
void Start() { //初始化出牌权 FightController.getInstance().RightToPlay = FightController.RIGHTTOPLAY.MINE; float doSizeH = AdaptationResolutionMG.getInstance().getDoSizeHeight(); float bg_topHeight = bg_top.transform.GetComponent <RectTransform>().sizeDelta.y *doSizeH; float bg_bottomHeight = bg_bottom.transform.GetComponent <RectTransform>().sizeDelta.y *doSizeH; Vector2 oldMiddPanelShowSize = middPanelShow.transform.GetComponent <RectTransform>().sizeDelta *doSizeH; FightUIData.getInstance().setFightUIHeight(bg_topHeight, bg_bottomHeight); middPanelShow.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, oldMiddPanelShowSize.y); middPanel.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, oldMiddPanelShowSize.y); mainPanel.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, Screen.height); bg_top.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, bg_topHeight); GameObject bg_name = bg_top.transform.FindChild("bg_name").gameObject; doSizeUI(bg_name, doSizeH); GameObject icon_hp = bg_top.transform.FindChild("icon_hp").gameObject; doSizeUI(icon_hp, doSizeH); bg_bottom.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, bg_bottomHeight); icon_hp = bg_bottom.transform.FindChild("icon_hp").gameObject; doSizeUI(icon_hp, doSizeH); //初始化战斗按钮相关 GameObject Buttons = bg_bottom.transform.FindChild("Buttons").gameObject; doSizeUI(Buttons, doSizeH); GameObject ButtonNoOut = Buttons.transform.FindChild("ButtonNoOut").gameObject; GameObject ButtonTip = Buttons.transform.FindChild("ButtonTip").gameObject; GameObject ButtonAtk = Buttons.transform.FindChild("ButtonAtk").gameObject; EventListener.Get(ButtonNoOut).onClick = BtnCallBack; EventListener.Get(ButtonTip).onClick = BtnCallBack; EventListener.Get(ButtonAtk).onClick = BtnCallBack; FightUIData.getInstance().EnemyVec3 = enemyPanel.transform.GetComponent <RectTransform>().position; FightUIData.getInstance().MineVec3 = minePanel.transform.GetComponent <RectTransform>().position; _mainPanel = mainPanel; }
void OnTriggerEnter(Collider coll) { if (coll.gameObject.name == "myPanel") { CardEnemy enemyCard = this.gameObject.GetComponent <CardEnemy>(); //爆炸效果 GameObject par = Instantiate(Resources.Load("Prefab/ColliderParticle") as GameObject); par.transform.parent = this.transform.parent; par.transform.localPosition = FightUIData.getInstance().MineVec3; //掉血效果 GameObject HpObj = Instantiate(Resources.Load("Prefab/Fight/dropBlood") as GameObject); Text Hp = HpObj.transform.GetComponent <Text>(); Debug.Log(Hp); Hp.transform.parent = this.transform.parent; Hp.transform.localPosition = FightUIData.getInstance().MineVec3; // - new Vector3(0,100,0); Hp.text = "-" + enemyCard.cardData.getNumber(); Sequence sq = DOTween.Sequence(); sq.SetRelative(); Tweener tw = HpObj.transform.DOLocalMoveY(Screen.height * 0.1f, 0.5f).SetEase(Ease.OutExpo).SetRelative(); tw.OnComplete(delegate() { DestroyObject(HpObj); }); sq.Join(tw); sq.Join(HpObj.transform.DOScale(new Vector3(1.5f, 1.5f, 1.5f), 0.5f)); touchEve(enemyCard); atk(); } else { CardEnemy enemyCard = this.gameObject.GetComponent <CardEnemy>(); enemyCard.correctRotate(); } }
void Start() { clearnDictionary(); _enemyCardNumsObj = enemyCardNumsObj; _hpObj = hpObj; EnemyFightController.getInstance().initEnemyFightData(); _enemyCardNumsObj.text = EnemyFightData.getInstance().cardsNumber().ToString(); _hpObj.text = EnemyFightData.getInstance().getHp().ToString(); parentGame = this.gameObject; //初始化摆位 //卡牌父节点尺寸 Vector2 vec2 = this.gameObject.transform.GetComponent <RectTransform>().sizeDelta; //卡牌节点尺寸 float itemWidth = 0.0f; float itemHeight = 0.0f; //卡牌间的距离间距 float space = 20.0f; //卡牌加间隙占的总宽度 float allCardWidth = 0.0f; //第一张卡牌的坐标位置 float fristX = 0.0f; doSize = 1.0f; float middPanelHeight = FightUIData.getInstance().getMiddHeight(); //初始化首发卡牌对象 Dictionary <int, CardData> cardDataDic = EnemyFightController.getInstance().getFristCards(); for (int i = 1; i <= cardDataDic.Count; i++) { CardEnemy card = CardEnemy.create(cardDataDic[i]); card.setParent(this.gameObject); if (1 == i) { itemWidth = card.getSize().x; itemHeight = card.getSize().y; if (AdaptationResolutionMG.getInstance().getDeviceSizeType() == DEVICE_SIZE_TYPE.Leng) { doSize = AdaptationResolutionMG.getInstance().getRawWidth() / (float)Screen.width; } else if (AdaptationResolutionMG.getInstance().getDeviceSizeType() == DEVICE_SIZE_TYPE.Compare) { doSize = AdaptationResolutionMG.getInstance().getDoSizeWidth(); } else { doSize = Screen.width / (float)(itemWidth * Const.FRIST_CARD_NUM + space * (Const.FRIST_CARD_NUM - 1)); } allCardWidth = (itemWidth * Const.FRIST_CARD_NUM) + (Const.FRIST_CARD_NUM - 1) * space; allCardWidth = allCardWidth * doSize; //表示已经超出屏幕 在现有的基础上再一次缩放 if (Screen.width < allCardWidth) { doSize = doSize * Screen.width / allCardWidth; } itemWidth = itemWidth * doSize; itemHeight = itemHeight * doSize; space = space * doSize; allCardWidth = (itemWidth * Const.FRIST_CARD_NUM) + (Const.FRIST_CARD_NUM - 1) * space; fristX = (Screen.width - allCardWidth) * 0.5f - Screen.width * 0.5f + itemWidth * 0.5f; } card.setScale(doSize * enemyCardScale); int key = cardDataDic[i].Pos; viewPosList.Add(key, new Vector2(fristX + (i - 1) * (itemWidth + space), -middPanelHeight * 0.5f + itemHeight * 1.3f)); viewCardDic.Add(key, card); card.setPosition(viewPosList[i]); } }
public void randAtk() { int posRand = Random.Range(1, 6); viewCardDic[posRand].getObj().transform.SetAsLastSibling(); Sequence sq = DOTween.Sequence(); sq.SetUpdate(true); Tweener tw = viewCardDic[posRand].getObj().GetComponent <RectTransform>().DOLocalRotate(new Vector3(0, 90, 0), 0.1f).SetRelative(); tw.OnComplete(delegate() { viewCardDic[posRand].setVisibleMaskImg(false); }); sq.Append(tw); sq.Append(viewCardDic[posRand].getObj().GetComponent <RectTransform>().DOLocalRotate(new Vector3(0, -90, 0), 0.4f).SetRelative()); sq.Append(viewCardDic[posRand].getObj().GetComponent <RectTransform>().DOLocalMove(FightUIData.getInstance().MineVec3 + new Vector3(0, -50, 0), 0.2f).SetEase(Ease.InBack)); }
//处理战斗view的事件 public IEnumerator FightViewTouchFn(Const.FIGHT_BTN_TYPE state) { //场上必须得有卡牌才能响应 if (MineFightData.getInstance().usingCardsNumber() > 0 && FightController.getInstance().RightToPlay == FightController.RIGHTTOPLAY.MINE) { if (Const.FIGHT_BTN_TYPE.NO_OUT == state) { noOut(); FightController.getInstance().RightToPlay = FightController.RIGHTTOPLAY.ENEMY; } else if (Const.FIGHT_BTN_TYPE.TIP == state) { noOut(); if (currOutCardRule.Count == 0) { currOutCardRule = getItemOutCardRule(); } if (currOutCardRule.Count > 0) { List <int> l = new List <int>(); l = currOutCardRule[0]; currOutCardRule.RemoveAt(0); foreach (var pos in l) { cardToWaitPos(pos); } } } //出击 else if (Const.FIGHT_BTN_TYPE.ATK == state) { //此时是否有卡片可以出 bool isHaveCardCanOut = false; for (int i = 1; i <= Const.FRIST_CARD_NUM; ++i) { if (viewCardDic.ContainsKey(i) && viewCardDic[i].getCardState() == Card.CardState.waitFight) { isHaveCardCanOut = true; FightController.getInstance().RightToPlay = FightController.RIGHTTOPLAY.MINEING; viewCardDic[i].getObj().transform.SetAsLastSibling(); viewCardDic [i].getObj().GetComponent <RectTransform> ().DOLocalMove(FightUIData.getInstance().EnemyVec3 + new Vector3(0, Screen.height * 0.2f, 0), 0.1f) .SetEase(Ease.InBack).SetUpdate(true); yield return(new WaitForSeconds(0.3f)); } } if (isHaveCardCanOut) { yield return(new WaitForSeconds(0.6f)); FightController.getInstance().RightToPlay = FightController.RIGHTTOPLAY.ENEMY; } else { MsgPrompts.create("请选择至少一张卡牌", Color.red); } } } }