Esempio n. 1
0
        public override void DidMoveToView(SpriteKit.SKView view)
        {
            base.DidMoveToView(view);
            var wanderer = new AgentNode(this, DefaultAgentRadius, new CGPoint(Frame.GetMidX(), Frame.GetMidY()))
            {
                Color = SKColor.Cyan
            };

            wanderer.Agent.Behavior = GKBehavior.FromGoal(GKGoal.GetGoalToWander(10), 100f);
            AgentSystem.AddComponent(wanderer.Agent);
        }
Esempio n. 2
0
        public override void DidMoveToView(SKView view)
        {
            base.DidMoveToView(view);

            var follower = new AgentNode(this, DefaultAgentRadius, new CGPoint(Frame.GetMidX(), Frame.GetMidY()))
            {
                Color = SKColor.Cyan
            };

            var center = new Vector2((float)Frame.GetMidX(), (float)Frame.GetMidY());
            var points = new [] {
                new Vector2(center.X, center.Y + 50),
                new Vector2(center.X + 50, center.Y + 150),
                new Vector2(center.X + 100, center.Y + 150),
                new Vector2(center.X + 200, center.Y + 200),
                new Vector2(center.X + 350, center.Y + 150),
                new Vector2(center.X + 300, center.Y),
                new Vector2(center.X, center.Y - 200),
                new Vector2(center.X - 200, center.Y - 100),
                new Vector2(center.X - 200, center.Y),
                new Vector2(center.X - 100, center.Y + 50),
            };

            var path = GKPath.FromPoints(points, DefaultAgentRadius, true);

            follower.Agent.Behavior = GKBehavior.FromGoal(GKGoal.GetGoalToFollowPath(path, 1.5, true), 1);
            AgentSystem.AddComponent(follower.Agent);

            var cgPoints = new CGPoint[11];

            for (var i = 0; i < 10; i++)
            {
                cgPoints [i] = new CGPoint(points [i].X, points [i].Y);
            }

            cgPoints [10] = cgPoints [0];
            var pathShape = SKShapeNode.FromPoints(ref cgPoints [0], 11);

            pathShape.LineWidth   = 2;
            pathShape.StrokeColor = SKColor.Magenta;
            AddChild(pathShape);
        }
Esempio n. 3
0
        public override void DidMoveToView(SpriteKit.SKView view)
        {
            base.DidMoveToView(view);
            Player = new AgentNode(this, DefaultAgentRadius, new CGPoint(Frame.GetMidX(), Frame.GetMidY()));
            Player.Agent.Behavior = new GKBehavior();
            AgentSystem.AddComponent(Player.Agent);
            Player.Agent.MaxSpeed *= 1.2f;

            SeekGoal = GKGoal.GetGoalToSeekAgent(TrackingAgent);

            Friends = new [] {
                AddFriend(new CGPoint(Frame.GetMidX() - 150f, Frame.GetMidY())),
                AddFriend(new CGPoint(Frame.GetMidX() + 150f, Frame.GetMidY()))
            };
            SeparateGoal = GKGoal.GetGoalToSeparate(new [] { Player.Agent }, 100f, (float)(Math.PI * 2));
            var behavior = GKBehavior.FromGoal(SeparateGoal, 100f);

            foreach (var friend in Friends)
            {
                friend.Agent.Behavior = behavior;
            }
        }