//清理场上已经死亡的卡牌 //参数为卡牌唯一id public void destroyCard(int id) { int number = FightingCardsDic[id].getNumber(); EnemyFightData.getInstance().subHp(number); FightingCardsDic.Remove(id); }
//拿取首发卡牌 public Dictionary <int, CardData> getFristCards() { Dictionary <int, CardData> dic = new Dictionary <int, CardData>(); for (int num = 1; num <= Const.FRIST_CARD_NUM; ++num) { int pos = num; CardData cards = EnemyFightData.getInstance().takeCard(pos); dic.Add(pos, cards); } return(dic); }
public void createCardObject(int pos) { CardData cardData = EnemyFightController.getInstance().substitute(pos); CardEnemy card = CardEnemy.create(cardData); card.setParent(parentGame); card.setPosition(new Vector3(Screen.width, 0, 0)); card.setScale(doSize * enemyCardScale); card.moveTo(viewPosList[pos], () => { _enemyCardNumsObj.text = (EnemyFightData.getInstance().cardsNumber() + EnemyFightData.getInstance().usingCardsNumber()).ToString(); }); viewCardDic.Add(pos, card); }
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]); } }
//敌方遭受攻击结束 static public void Atkend() { _hpObj.text = EnemyFightData.getInstance().getHp().ToString(); }
//view报告销毁数据 public void destroy(int id) { EnemyFightData.getInstance().destroyCard(id); }
//从仓库随机一个替补数据 public CardData substitute(int pos) { return(EnemyFightData.getInstance().takeCard(pos)); }
//初始化我的仓库 public void initEnemyFightData() { EnemyFightData.getInstance().createCards(); }