public void DrawMouse(Position position, Direction direction)
 {
     MousePosition = position;
     MouseDirection = direction;
     PrepareMouse();
     Invalidate();
 }
Beispiel #2
0
 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));
 }
Beispiel #4
0
 public MovedEvent(Position pos)
     : base("MouseHasMoved")
 {
     Position = pos;
 }
Beispiel #5
0
 public void MouseHasMoved(Position newPosition)
 {
     Events.Push(new MovedEvent(newPosition));
 }
Beispiel #6
0
 private void MouseHasMoved(Position newPosition)
 {
     lock (watchers)
     {
         foreach (var mazeWatcher in watchers)
         {
             mazeWatcher.MouseHasMoved(newPosition);
         }
     }
 }