Exemplo n.º 1
0
        private static Vector3 CalculateCollisionPoint(TileOrientationTable _tileOrientation, Vector3 _tilePosition)
        {
            Vector3 tp = new Vector3(_tilePosition.x, _tilePosition.y, _tilePosition.z);

            switch (_tileOrientation)
            {
            case TileOrientationTable.NOT_INTERESTING_VALUE:
                break;

            case TileOrientationTable.MINUS_R:
                tp += Vector3.right * 612;
                break;

            case TileOrientationTable.PLUS_R:
                tp -= Vector3.right * 612;
                break;

            case TileOrientationTable.MINUS_U:
                tp -= Vector3.forward * 612;
                break;

            case TileOrientationTable.PLUS_U:
                tp += Vector3.forward * 612;
                break;

            case TileOrientationTable.MINUS_MINUS_D:
                tp -= Vector3.forward * 612 - Vector3.right * 612;
                break;

            case TileOrientationTable.MINUS_PLUS_D:
                tp -= Vector3.forward * 612 + Vector3.right * 612;
                break;

            case TileOrientationTable.PLUS_MINUS_D:
                tp += Vector3.forward * 612 - Vector3.right * 612;
                break;

            case TileOrientationTable.PLUS_PLUS_D:
                tp += Vector3.forward * 612 + Vector3.right * 612;
                break;
            }
            return(tp);
        }
Exemplo n.º 2
0
        private static Vector2 CalculateRealPosition(TileOrientationTable _tileOrientation, Vector2 _collTileCenter)
        {
            Vector2 calcCen = new Vector2(_collTileCenter.x, _collTileCenter.y);

            switch (_tileOrientation)
            {
            case TileOrientationTable.NOT_INTERESTING_VALUE:
                break;

            case TileOrientationTable.MINUS_R:
                calcCen -= Vector2.right;
                break;

            case TileOrientationTable.PLUS_R:
                calcCen += Vector2.right;
                break;

            case TileOrientationTable.MINUS_U:
                calcCen -= Vector2.up;
                break;

            case TileOrientationTable.PLUS_U:
                calcCen += Vector2.up;
                break;

            case TileOrientationTable.MINUS_MINUS_D:
                calcCen -= Vector2.up - Vector2.right;
                break;

            case TileOrientationTable.MINUS_PLUS_D:
                calcCen -= Vector2.up + Vector2.right;
                break;

            case TileOrientationTable.PLUS_MINUS_D:
                calcCen += Vector2.up - Vector2.right;
                break;

            case TileOrientationTable.PLUS_PLUS_D:
                calcCen += Vector2.up - Vector2.right;
                break;
            }
            return(calcCen);
        }
Exemplo n.º 3
0
 public CheckNearbyTileResult(bool _isCollided = false)
 {
     IsCollided              = _isCollided;
     RealPosition            = Vector2.zero;
     TileOrientationCollided = TileOrientationTable.NOT_INTERESTING_VALUE;
 }