public void DrawMouse(Position position, Direction direction) { MousePosition = position; MouseDirection = direction; PrepareMouse(); Invalidate(); }
public Maze(IMazeBuilder builder) { if (builder == null) throw new ArgumentNullException("builder"); Width = builder.Width; Height = builder.Height; HWalls = new bool[Width, Height + 1]; VWalls = new bool[Width + 1, Height]; ClearMaze(); builder.Build(this); MazeHasBeenBuilt(Width, Height); startPosition = builder.MazeStartPosition; x = startPosition.X; y = startPosition.Y; direction = Direction.East; MouseHasMoved(new Position(x, y)); MouseHasTurned(direction); }
public void DrawWall(Position fromPos, Position toPos) { Lines.Add(new Rectangle(fromPos.X, fromPos.Y, toPos.X - fromPos.X, toPos.Y - fromPos.Y)); }
public MovedEvent(Position pos) : base("MouseHasMoved") { Position = pos; }
public void MouseHasMoved(Position newPosition) { Events.Push(new MovedEvent(newPosition)); }
private void MouseHasMoved(Position newPosition) { lock (watchers) { foreach (var mazeWatcher in watchers) { mazeWatcher.MouseHasMoved(newPosition); } } }