我不明白脚本如何进入下一个房间,以及“引擎”和“地图”类的工作原理。这是一段摘录:
Class Map(object):
scenes = {
'central_corridor': CentralCorridor(),
'laser_weapon_armory': LaserWeaponArmory(),
'the_bridge': TheBridge(),
'escape_pod': EscapePod(),
'death': Death()
}
def __init__(self, start_scene):
self.start_scene = start_scene
def next_scene(self, scene_name):
return Map.scenes.get(scene_name)
def opening_scene(self):
return self.next_scene(self.start_scene)
class Engine(object):
def __init__(self, scene_map):
self.scene_map = scene_map
def play(self):
current_scene = self.scene_map.opening_scene()
while True:
print "\n--------"
next_scene_name = current_scene.enter()
current_scene = self.scene_map.next_scene(next_scene_name)
我根本不明白这些部分是如何工作的。我知道类和对象实例和属性以及所有其他 OOP 东西是如何工作的,但由于某种原因,我没有得到这部分代码。主要是地图类。如果有人能解释一下,那就太棒了。
另外(这可能需要阅读练习),为什么还需要这两个类?难道你不能只用类方法来代替(即没有 self 作为参数的方法。)?例如,您可以调用 CentralCorridor.enter()。实际上,这就是我在阅读答案之前解决它的方法,并且效果很好。
抱歉,我的主要问题是 Engine 和 Map 类是如何工作的。另一件事是次要的。
提前致谢!