public void Update() { MouseState mouse = Mouse.GetState(); if (Delay < DateTime.Now && mouse.LeftButton == ButtonState.Pressed) { if (Selected == null) { Rectangle R = new Rectangle(mouse.X-3, mouse.Y-3, 2, 2); for (int i = 0; i < WorldActors.Count(); i++) { Actor A = WorldActors[i] as Actor; if (R.Intersects(A.CollisionRectangle)) { Selected = A; Delay = DateTime.Now.AddSeconds(0.5); return; } } } else { for (int i = 0; i < WorldActors.Count(); i++) { Actor A = WorldActors[i] as Actor; if (A == Selected) { Selected.Position = new Vector2(mouse.X, mouse.Y); WorldActors[i] = Selected; Selected = null; Delay = DateTime.Now.AddSeconds(0.5); return; } } } } }
public Sensor(ref List<Actor> aWorldActors, Actor aHost, SpriteFont aDebugFont) { pHost = aHost; pWorldActors = aWorldActors; DebugFont = aDebugFont; }
public AgentSensor(ref List<Actor> aWorldActors, Actor aHost, SpriteFont aDebugFont) : base(ref aWorldActors, aHost, aDebugFont) { }
public virtual Boolean CheckCollision(Actor B) { if ((this)is Pawn && B is Pawn&&(pSprite.Width)>Vector2.Distance((this).pPosition,B.pPosition)) { pPosition = pLastPosition; return true; } else if (CollisionRectangle.Intersects(B.CollisionRectangle)) { pPosition = pLastPosition; return true; } return false; }