public void EnemyAttackInUpdate() { m_TileCardMap.AllEnemyAttack(); m_TurnState = CardChessTurnState.CharaMove; m_CurrentHoldCard = null; EnemyAttackAfterCheck(); }
public void CharaAfterAttackAnyUnMoveCard() { if (m_CharaManager.IsAnyCharaUnMove()) { m_TurnState = CardChessTurnState.CharaMove; } else { m_TurnState = CardChessTurnState.EnemyAttack; } }
public void CharaMoveInUpdate() { m_CurrentMousePosition = m_camera.ScreenToWorldPoint(Input.mousePosition); //整体初始位置 RaycastHit2D hit = Physics2D.Raycast(m_camera.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); if (Input.GetMouseButtonDown(0)) { m_LastMousePosition = m_camera.ScreenToWorldPoint(Input.mousePosition); if (hit && hit.transform.tag == "Chara" && hit.transform.GetComponent <TileCard>().m_CurrentChara.m_IsMoveFinished == false) { m_CurrentHoldCard = hit.collider.gameObject.GetComponent <TileCard>(); m_CurrentHoldCard.StartMove(); } else { m_CurrentHoldCard = null; } } if (m_CurrentHoldCard) { RaycastHit2D[] hit2 = Physics2D.RaycastAll(m_camera.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); foreach (RaycastHit2D r in hit2) { if (r.transform != m_CurrentHoldCard.transform) { if (m_CurrentHoldCard.m_neigbborCard.FindInNeibor(r.transform)) { m_CurrentChangeCard = r.transform.GetComponent <TileCard>();//再加一个检测,要保证这个新的 卡牌在原来currenthold卡牌的周围。 m_CurrentChangeCard.HighLight(); } else { m_CurrentChangeCard = null; } } } m_Distance = m_CurrentMousePosition - m_LastMousePosition; if (Input.GetMouseButton(0)) { m_CurrentHoldCard.Move(m_Distance); } ///当鼠标抬起的时候,调整角色返回或者更换卡牌。 if (Input.GetMouseButtonUp(0)) { if (m_CurrentChangeCard) { m_TileCardMap.ChangeCard(m_CurrentHoldCard, m_CurrentChangeCard); m_TurnState = CardChessTurnState.CharaAttack; m_CurrentAttackCharaTile = m_CurrentHoldCard; ///这里的设计,让角色不影响内容…就是说,确定当前卡片已经活跃过了。这点放在卡片里面。不要放在chara类里面。因为上面还要检测。 m_CurrentHoldCard.m_CurrentChara.m_IsMoveFinished = true; m_CurrentHoldCard = null; } else { m_CurrentHoldCard.StopMove(); m_CurrentAttackCharaTile = null; m_CurrentHoldCard = null; } m_CurrentChangeCard = null; m_CurrentHoldCard = null; } m_CurrentChangeCard = null;///这里的设计稍微有问题。但是影响不大。 } }
public void CallByButton() { m_TurnState = CardChessTurnState.CharaMove; m_TileCardMap.AllTileCardCheck(); }