Exemplo n.º 1
0
    /// <summary>
    /// sets the variables for this object and re-initializes
    /// </summary>
    private void Reposition(PathSegmentData d)
    {
        pathStart = d.pathStart;
        pathEnd   = d.pathEnd;
        pathWidth = d.pathWidth;

        Init();
    }
Exemplo n.º 2
0
    /// <summary>
    /// spawns the path objects
    /// </summary>
    private void SpawnPaths()
    {
        foreach (PathSegment v in segments)
        {
            GameObject s = (GameObject)Instantiate(segmentPrefab);                                                       //create segment
            s.transform.SetParent(transform);                                                                            //set this as the parent
            PathSegmentData d = new PathSegmentData(new Vector2(v.startX, v.startY), new Vector2(v.endX, v.endY), 0.5f); //create data struct
            s.SendMessage("Reposition", d);                                                                              //send data to object

            //if there is no segment that begins at the same place this segment ends, spawn a marker
            if (segments.Any(x => (x.startX == v.endX) && (x.startY == v.endY)) == false)
            {
                GameObject m = (GameObject)Instantiate(enemyGoalMarkerPrefab);
                m.transform.SetParent(this.transform);
                m.transform.position = new Vector2(v.endX, v.endY);
            }
        }
    }
Exemplo n.º 3
0
        /// <summary> Creates the path geometry data.
        /// </summary>
        /// <param name="nodes">The nodes.</param>
        /// <returns></returns>
        public static PathGeometryData CreatePathGeometryData(IEnumerable <PathNodeData> nodes)
        {
            PathGeometryData geometryData = new PathGeometryData();
            PathFigureData   figure       = null;
            PathSegmentData  segment      = null;

            foreach (var node in nodes)
            {
                if (node.SegmentType == SegmentType.StartPoint)
                {
                    figure = new PathFigureData {
                        StartPoint = node.Point, IsClosed = node.IsClosed
                    };
                    geometryData.Figures.Add(figure);
                }
                else
                {
                    switch (node.SegmentType)
                    {
                    case SegmentType.ArcSegment:
                        throw new NotImplementedException("{C3DB91D2-6511-4274-B60F-99DF3CADF0A3}");

                    case SegmentType.BezierSegment:
                        throw new NotImplementedException("{D811AFE1-EB44-4671-9F27-E7609AEF8B5B}");

                    case SegmentType.LineSegment: {
                        figure.Segments.Add(new PathSegmentData {
                                Nodes = { node }, SegmentType = node.SegmentType
                            });
                        break;
                    }

                    case SegmentType.PolyBezierSegment:
                        throw new NotImplementedException("{3C01C459-4539-4D87-8206-DF1903491B63}");

                    case SegmentType.PolyLineSegment: {
                        if (node.SegmentIndex == 0)
                        {
                            segment = new PathSegmentData {
                                Nodes = { node }, SegmentType = node.SegmentType
                            };
                            figure.Segments.Add(segment);
                        }
                        else
                        {
                            segment.Nodes.Add(node);
                        }
                        break;
                    }

                    case SegmentType.PolyQuadraticBezierSegment:
                        throw new NotImplementedException("{61171A80-E52E-4C93-B7DE-DCF9C65B93F3}");

                    case SegmentType.QuadraticBezierSegment:
                        throw new NotImplementedException("{64CA6FB1-A5B2-4F5E-BE48-5A2E85F6B6B9}");

                    default:
                        throw new NotImplementedException("{E1D79545-F131-4196-B964-A74CBB99DBFD}");
                    }
                }
            }
            return(geometryData);
        }