// Update is called once per frame void Update() { if (CardOn == true && card != null) { CardDrag drag = card.GetComponent <CardDrag> (); if (drag.dragged == false && drag.poweradded == false) { CardOn = false; cardlist.Add(card); this.GetComponentInParent <rowScore> ().addScore(drag.power); drag.poweradded = true; card = null; } } cardcount = cardlist.Count; if (cardlist.Count > 0) { testing = (1 - cardcount) / (1.75); for (int i = 0; i < cardcount; i++) { GameObject test = (GameObject)cardlist[i]; Vector3 newPos = new Vector3((transform.position.x + (float)testing + i), transform.position.y, test.transform.position.z); test.transform.position = newPos; } } }
// ------------------------------------------------------------------------- // CardDrag_flgActCheck() // CardDragのflg_Actチェック処理 // ------------------------------------------------------------------------- public void CardDrag_flgActCheck() { // 全てのカードのフラグ状態をチェック foreach (Transform child in OBJ_DECK.transform) { CardDrag script = child.GetComponent<CardDrag>(); if (script.flg_Act == true) // まだ実施中のものがあれば処理を廃棄 return; } for (int i = 0; i < Card_All_str.Length; i++) { if (Card_All_str[i] == "") { // empty // カード探す GameObject child = GameObject.Find("GameCanvas/Deck/card_" + i); if (Card_queue.Count > 0) // dequeueが空でなくば { CardUpdating(i, CardDequeue()); // カードを格納 child.SetActive(true); // デッキを再表示にする CardDrag script = child.GetComponent<CardDrag>(); script.Card_Revival(); // カード復活処理 DeckMasterDisabledFunc(false); // デッキを再度非表示にする } else { child.SetActive(false); // 非表示に FieldCountCheck(i); // 値を空にする+カウントチェック } } } PaneClearCheck(); // DrawScreen(); // デッキ枚数描画等 Ques_Store(); // データ格納 }
// ------------------------------------------------------------------------- // DrawScreen // 画面への描画処理 // ------------------------------------------------------------------------- void DrawScreen() { // 小項目の描画(大項目は直接描画しているため必要なし) int cnt = 0; foreach (Transform child in OBJ_DECK.transform) { CardDrag script = child.GetComponent<CardDrag>(); script.str_MainTxt = Card_All_str[cnt]; script.str_Help = Card_All_strHelp[cnt]; Text textComponent = child.GetComponentInChildren<Text>(); if (DebugFlg.isOn == true) textComponent.text = Card_All_str[cnt] + " : " + Card_All_txt[cnt]; else textComponent.text = Card_All_txt[cnt]; if (textComponent.text == "") // 入れる値がなくば無効化 child.gameObject.SetActive(false); cnt++; TEXT_CARD_NUM.text = Card_queue.Count.ToString(); // 詳細の箇所は空欄にする。 ChangeText_SC(""); strDisplayNow = ""; // 表示用も空にする } }
public void OnDrop(PointerEventData eventData) { CardDrag card = eventData.pointerDrag.GetComponent <CardDrag>(); if (card) { card.DefaultParent = transform; } }
public void RemoveCard(CardDrag cardDrag) { for (int i = 0; i < this.transform.childCount; i++) { if (this.transform.GetChild(i).Equals(cardDrag)) { Destroy(this.transform.GetChild(i)); } } }
void OnTriggerExit2D(Collider2D coll) { card = coll.gameObject; if (coll.gameObject.tag == "Card") { drag = card.GetComponent <CardDrag> (); hand.Remove(card); } card = null; }
void IBeginDragHandler.OnBeginDrag(PointerEventData eventData) { cardDrag = this; myCanvas.sortingOrder = 2; startParent = transform.parent; startPosition = transform.position; myCanvasGroup.blocksRaycasts = false; }
void IEndDragHandler.OnEndDrag(PointerEventData eventData) { cardDrag = null; myCanvas.sortingOrder = 1; if (transform.parent == startParent) { transform.position = startPosition; } myCanvasGroup.blocksRaycasts = true; }
// ------------------------------------------------------------------------- // CorrectNext // 正解処理 // ------------------------------------------------------------------------- // 次の問題へ移行 1.5f void CorrectNext() { // 抽出されたものの選択肢を消す // 正解表示を消す CorrectPanel.SetActive(false); // 正解したカードを消す for(int i = 0; i < Card_All_str.Length; i++) { if (Card_All_str[i] == "") { int cnt = 0; foreach (Transform child in OBJ_DECK.transform) { if (i == cnt) { child.gameObject.SetActive(false); break; } cnt++; } } } // 但しカードがなくなったら補充する int chk = 0; for(chk = 0; chk < Card_All_str.Length; chk++) { if (Card_All_str[chk] != "") break; } if (chk >= Card_All_str.Length) { foreach (Transform child in OBJ_DECK.transform) { child.gameObject.SetActive(true); } SetCSVData_Sho(); // 初期化 } // 全てのカードに対し、初期位置へ戻れ命令。 foreach (Transform child in OBJ_DECK.transform) { CardDrag script = child.GetComponent<CardDrag>(); script.InitPos(); } SetCSVData_Dai(); // 新たな問題描画処理 }
// ------------------------------------------------------------------------- // OnClick_Help() // ヘルプボタン押下処理 // strDisplayNowには現在詳細画面に表示されているカード名が入っている // そのカードのscriptまで行き、help表示flgを立てる // 表示の更新をしたらhelp表示が反映される // ------------------------------------------------------------------------- public void OnClick_Help() { // フラグ変更 foreach (Transform child in OBJ_DECK.transform) { if(child.gameObject.name == strDisplayNow) // 現在表示中のものを探す { CardDrag script = child.GetComponent<CardDrag>(); script.flg_Help = true; // help表示フラグを更新 script.DisplayText_SC(); // 表示の更新 } } }
void OnTriggerEnter2D(Collider2D coll) { if (coll.gameObject.tag == "Card") { card = coll.gameObject; hand.Add(card); drag = card.GetComponent <CardDrag> (); card = null; // CardOn = true; } /*else { * CardOn = false; * }*/ }
//Fixing Weird Bug , when two bar collider collide with card void OnTriggerExit2D(Collider2D coll) { card = coll.gameObject; if (coll.gameObject.tag == "Card") { CardDrag drag = card.GetComponent <CardDrag> (); if (drag.poweradded == true) { CardOn = false; cardlist.Remove(card); this.GetComponentInParent <rowScore> ().removeScore(drag.power); drag.poweradded = false; } card = null; } }
// ------------------------------------------------------------------------- // Ques_Store // 問題格納処理 // ------------------------------------------------------------------------- void Ques_Store() { int cnt = 0; foreach (Transform child in OBJ_DECK.transform) { CardDrag script = child.GetComponent<CardDrag>(); script.str_MainTxt = Card_All_txt[cnt]; script.str_Help = Card_All_strHelp[cnt]; Text textComponent = child.GetComponentInChildren<Text>(); cnt++; TEXT_CARD_NUM.text = Card_queue.Count.ToString(); // 詳細の箇所は空欄にする。 ChangeText_SC("カードをタップ"); strDisplayNow = ""; // 表示用も空にする } }
// ------------------------------------------------------------------------- // NextCardButton_OnClick() // 次のカードボタン押下処理 // ------------------------------------------------------------------------- public void NextCardButton_OnClick() { if (SETTING_DB.CardInclude == true && flg_Miss == true && mode != 13) { TEXT_MISS_DISP.text = "Penalty + " + cnt_MissCard; CVS_MISS.enabled = true; // 不正解キャンバスを表示 StartCoroutine(PenaltyEnabled(1.0f, CVS_MISS)); cnt_MissCard = 0; } for (int i = 0; i < strArray.Length; i++) { if (strArray[i] == "正解" || strArray[i] == "不正解") { foreach (Transform child in OBJ_DECK.transform) { if (child.name == "card_" + i) { if (strArray[i] == "正解") { CardDrag script = child.GetComponent<CardDrag>(); // ここで縮小命令をかける script.Card_Reduct_Order(); break; } else if (strArray[i] == "不正解") { CardDrag script = child.GetComponent<CardDrag>(); // デッキに戻る処理 script.DeckBackFunc(); break; } } } } } CVS_NEXT_BUTTON.enabled = false; // NextCardボタン非表示 }
public bool PlayCard(CardDrag cardDrag, PointerEventData eventData) { Tile tile = map.GetTileFromPosition(Camera.main.ScreenToWorldPoint(eventData.position)); if (!tile.CanDrop()) { return(false); } Unit unit = null; Building building = null; Card card; if (cardDrag.GetComponent <CardUnitDisplay>() == null) { card = cardDrag.GetComponent <CardBuildingDisplay>().card; building = (Building)GamePiece.CreatePiece(this, card, tile); } else { card = cardDrag.GetComponent <CardUnitDisplay>().card; unit = (Unit)GamePiece.CreatePiece(this, card, tile); } if (card.cardType == CardType.Unit) { map.AddUnit(unit); } else if (card.cardType == CardType.Building) { map.AddBuilding(building); } hand.PlayCard(card); return(true); }
// ------------------------------------------------------------------------- // ButtonClick_JudgenChange() // Judge n Change ボタンクリック処理 // ------------------------------------------------------------------------- public void ButtonClick_JudgenChange() { //flg_operate = false; // ボタン操作フラグオフ Change_JudgenChangeButton(false); // 載っているカードの枚数を取得するとして // どうやればそれができるのか。 // それぞれのCardFieldに聞きにいくしかあるまい。 int cnt = 0; // 正解・不正解判定 cnt = 0; // カウント用 foreach(Transform child in OBJ_DECK.transform) { cnt++; } strArray = new string[cnt]; for(int i = 0; i < cnt; i++) { strArray[i] = ""; // 配列の初期化 } // どのカードがどのlsCodeかはこのScriptが持っている。 // 問題はどれがどのフィールドに置かれているかということ // これを取得すればよい。 foreach(Transform CFChild in OBJ_CARD_FIELD.transform) { foreach(Transform son in CFChild.transform) { if(son.name == "ColPos_JH") // 小学生 { FieldCube script = son.GetComponent<FieldCube>(); for ( int i = 0; i< cnt; i++) { if(script.Card_Put(i) == true) { switch (Card_All_str[i]) { case "": strArray[i] = "-"; break; case "JH": strArray[i] = "正解"; break; default: strArray[i] = "不正解"; break; } } } } if (son.name == "ColPos_M") // 小学生 { FieldCube script = son.GetComponent<FieldCube>(); for (int i = 0; i < cnt; i++) { if (script.Card_Put(i) == true) { switch (Card_All_str[i]) { case "": strArray[i] = "-"; break; case "MD": strArray[i] = "正解"; break; default: strArray[i] = "不正解"; break; } } } } } } flg_Miss = false; // ミスフラグ初期化 for (int i = 0; i < cnt; i++) { if(strArray[i] == "正解" || strArray[i] == "不正解") { foreach (Transform child in OBJ_DECK.transform) { if(child.name == "card_" + i) { // カード操作不能にする CardDrag script = child.GetComponent<CardDrag>(); script.flg_EnableMove = false; foreach(Transform son in child.transform) { // 花丸の表示 正解処理 if (strArray[i] == "正解" && son.name == "Hanamaru") { if(mode == 13) // 復習モードなら CorrectToReview(Card_All_int[i]); // 正解の問題除外 son.GetComponent<Image>().enabled = true; break; } // バツの表示 else if (strArray[i] == "不正解" && son.name == "Batu") { son.GetComponent<Image>().enabled = true; Card_queue.Enqueue(Card_All_int[i]); WrongToReview(Card_All_int[i]); // 復習に情報追加 if (SETTING_DB.CardInclude == true && mode != 13) { // カード追加用設定がOnなら flg_Miss = true; // ミスフラグオン CardInclude(); // ミス時のカード追加処理 } break; } } // helpの表示 CardDrag CDScript = child.GetComponent<CardDrag>(); CDScript.flg_Help = true; // help表示フラグを更新 if(child.name == strDisplayNow) // 現在表示中の問題であったらば CDScript.DisplayText_SC(); // 表示の更新 } } } } CVS_NEXT_BUTTON.enabled = true; // NextCardボタン表示 flg_Put = false; // カード置きフラグオフ }