示例#1
0
		public void Refresh (Room roomToRefresh)
		{
			//Rectangle OldDrawingBounds = game.player.Location.GetDrawingBounds(_view.Context);
			Rectangle DrawingBounds = roomToRefresh.GetDrawingBounds(_context);
			DrawingBounds.Inflate(-1,-1);
			_form.pnlMazeView.Invalidate(DrawingBounds);
		}
示例#2
0
        public Room OtherSideFrom(Room room)
        {
            if (room.RoomNumber == room1.RoomNumber)
                return room2;

            if (room.RoomNumber == room2.RoomNumber)
                return room1;

            return null;
        }
示例#3
0
		//provide default implementations that do nothing

		protected Connector (Room r1, Direction d)
		{
			Room r2 = (Room)r1.Neighbors[d];

			r1.Neighbors[d] = this;
			Neighbors[d] = r2;

			r2.Neighbors[d.opposite] = this;
			Neighbors[d.opposite] = r1;
		}
示例#4
0
        public Maze CreateMaze()
        {
            Maze aMaze = new Maze();
            Room r1 = new Room(1);
            Room r2 = new Room(2);
            Door theDoor = new Door(r1, r2);

            aMaze.AddRoom(r1);
            aMaze.AddRoom(r2);

            r1.SetSide(Direction.North, new Wall());
            r1.SetSide(Direction.East, theDoor);
            r1.SetSide(Direction.South, new Wall());
            r1.SetSide(Direction.West, new Wall());

            r2.SetSide(Direction.North, new Wall());
            r2.SetSide(Direction.East, new Wall());
            r2.SetSide(Direction.South, new Wall());
            r2.SetSide(Direction.West, theDoor);

            return aMaze;
        }
示例#5
0
文件: Wall.cs 项目: gbahns/MazeGame
		public Wall (Room r1, Direction d) : base(r1,d) {}
示例#6
0
 public void AddRoom(Room room)
 {
     rooms.Add(room);
 }
示例#7
0
 public Door(Room Room1, Room Room2)
 {
     room1 = Room1;
     room2 = Room2;
 }
示例#8
0
文件: Door.cs 项目: gbahns/MazeGame
		public Door (Room r1, Direction d) : base(r1,d) {}
 public override Door MakeDoor(Room r1, Room r2)
 {
     return new DoorNeedingSpell(r1, r2);
 }
 public DoorNeedingSpell(Room r1, Room r2)
     : base(r2,r2)
 {
 }
示例#11
0
 public virtual Door MakeDoor(Room r1, Room r2)
 {
     return new Door(r1, r2);
 }
示例#12
0
		private void CreateSquare(int size)
		{
			_rooms = new Room[size, size];

			for (int i = 0; i < size; i++)
			{
				for (int j = 0; j < size; j++)
				{
					_rooms[i, j] = new Room();
				}
			}

			for (int i = 0; i < size; i++)
			{
				for (int j = 0; j < size; j++)
				{
					if (i > 0)
					{
						_rooms[i, j].Join(_rooms[i - 1, j], Direction.West);
					}
					if (j > 0)
					{
						_rooms[i, j].Join(_rooms[i, j - 1], Direction.North);
					}
				}
			}

			StartRoom = _rooms[0, 0];
			FinishRoom = _rooms[size - 1, size - 1];
		}