本文整理汇总了Python中room.Room.intersect方法的典型用法代码示例。如果您正苦于以下问题:Python Room.intersect方法的具体用法?Python Room.intersect怎么用?Python Room.intersect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类room.Room
的用法示例。
在下文中一共展示了Room.intersect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: gen_connected_rooms
# 需要导入模块: from room import Room [as 别名]
# 或者: from room.Room import intersect [as 别名]
def gen_connected_rooms(self):
"""
Generate a series of rooms, connected with vertical and horizontal
tunnels. Each room is connected to the previous one with one tunnel.
"""
for i in xrange(cfg.MAX_ROOMS):
w = SS.map_rand.randrange(cfg.MIN_ROOM_SIZE, cfg.MAX_ROOM_SIZE)
h = SS.map_rand.randrange(cfg.MIN_ROOM_SIZE, cfg.MAX_ROOM_SIZE)
x = SS.map_rand.randrange(0, self.w - w - 1)
y = SS.map_rand.randrange(0, self.h - h - 1)
new_room = Room(x, y, w, h)
# See if any of the other rooms intersect with this one
failed = False
for room in self.rooms:
if new_room.intersect(room):
failed = True
break
if not failed:
# First room
if len(self.rooms) == 0:
(new_x, new_y) = new_room.center()
self.upstairs = (new_x, new_y)
self.create_rectangular_room(new_room)
self.place_objects(new_room)
self.rooms.append(new_room)
# Connect the rooms
for j in xrange(1, len(self.rooms)):
(new_x, new_y) = self.rooms[j].center()
(prev_x, prev_y) = self.rooms[j - 1].center()
if SS.map_rand.randrange(0, 2):
self.create_h_tunnel(prev_x, new_x, prev_y)
self.create_v_tunnel(prev_y, new_y, new_x)
else:
self.create_v_tunnel(prev_y, new_y, prev_x)
self.create_h_tunnel(prev_x, new_x, new_y)