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); }
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); }
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; } }