当前位置: 首页>>代码示例>>C#>>正文


C# HexPosition.select方法代码示例

本文整理汇总了C#中HexPosition.select方法的典型用法代码示例。如果您正苦于以下问题:C# HexPosition.select方法的具体用法?C# HexPosition.select怎么用?C# HexPosition.select使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HexPosition的用法示例。


在下文中一共展示了HexPosition.select方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Update

 void Update()
 {
     if (waiting || gameOver || !modeSelected)
     {
         return;
     }
     if (player == 1 && computerPlayer)
     {
         if (ai.go())
         {
             endTurn();
         }
         checkGameOver();
         return;
     }
     /*if (timeout > 0) {
         --timeout;
         if(timeout == 0) {
             print ("Warning: HexGrid.cs timed out.");
         }
         return;
     }*/
     if (!Input.mousePresent)
     {
         mouse = null;
     }
     else
     {
         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit[] hits = Physics.RaycastAll(ray);
         if (hits.Length == 0)
         {
             if (mouse != null && turn == Turn.MOVE)
             {
                 HexPosition.clearSelection("Path");
                 HexPosition.clearSelection("Attack");
                 path = null;
             }
             // No hits == null
             mouse = null;
         }
         else  // if hit(s)
         {
             // Find closest
             float minDist = float.PositiveInfinity;
             int min = 0;
             for (int i = 0; i < hits.Length; ++i)
             {
                 if (hits[i].distance < minDist)
                 {
                     minDist = hits[i].distance;
                     min = i;
                 }
             }
             HexPosition newMouse = new HexPosition(hits[min].point);
             if (newMouse != mouse)
             {
                 if (mouse != null)
                 {
                     mouse.unselect("Cursor");
                 }
                 if (newMouse.containsKey("Obstacle"))
                 {   //The Obstacle tag is being used to make the tile unselectable.
                     if (mouse != null && turn == Turn.MOVE)
                     {
                         HexPosition.clearSelection("Path");
                         HexPosition.clearSelection("Attack");
                         path = null;
                     }
                     mouse = null;
                     return;
                 }
                 mouse = newMouse;
                 mouse.select("Cursor");
                 if (turn == Turn.MOVE)
                 {
                     Unit unit = (Unit)selection.getValue("Unit");
                     HexPosition.clearSelection("Path");
                     HexPosition.clearSelection("Attack");
                     path = AStar.search(selection, mouse, unit.SPEED);
                     HexPosition.select("Path", path);
                     selectAttackable(unit, mouse);
                 }
             }
             if (Input.GetButtonDown("Fire1"))
             {
                 switch (turn)
                 {
                     case Turn.SELECT:
                         select();
                         break;
                     case Turn.MOVE:
                         move();
                         break;
                     case Turn.ATTACK:
                         attack();
                         break;
                     default:
                         print("Error: Turn " + turn + " not implemented.");
                         break;
//.........这里部分代码省略.........
开发者ID:Draxe,项目名称:Battlegrounds,代码行数:101,代码来源:HexGrid.cs

示例2: move

 private void move()
 {
     if (mouse.Equals(selection))
     {
         unselect();
     }
     else if (!mouse.containsKey("Unit"))
     {
         if (path.Length > 0)
         {
             Unit myUnit = ((Unit)selection.getValue("Unit"));
             myUnit.move(path);
             HexPosition.clearSelection();
             selection = mouse;
             selection.select("Selection");
             if (selectAttackable(myUnit))
             {
                 turn = Turn.ATTACK;
             }
             else
             {
                 myUnit.Status = Unit.State.WAIT;
                 unselect();
                 endTurn();
             }
         }
     }
     else
     {
         object enemy = null;
         if (mouse.tryGetValue("Unit", out enemy))
         {
             Unit myUnit = ((Unit)selection.getValue("Unit"));
             if (isAttackable(myUnit, (Unit)enemy))
             {
                 actuallyAttack();
             }
         }
     }
 }
开发者ID:Draxe,项目名称:Battlegrounds,代码行数:40,代码来源:HexGrid.cs


注:本文中的HexPosition.select方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。