在pyGame中切换游戏关卡

时间:2013-11-23 17:06:41

标签: python-2.7 pygame

TL; DR-它告诉我全局变量'main'没有定义,有没有办法从另一个文件中的另一个类中调用main? -

我正在为我的CS课程创建一个小型的平台游戏,并且在我们自定义游戏的下半部分我想要添加第二级别。当你“击中”“门”型瓷砖时,我以为我可以像这样重新运行。

这是主要的,下面是碰撞测试并返回

def main():

    if level == 1:
        p = Platformer('Adventure Time!', 'map1.tmx', 600, 600, 30)
    else:
        p = Platformer('Adventure Time!', 'map2.tmx', 600, 600, 30)
    p.main_loop()

main()

接下来在玩家类中检测到与不同对象的碰撞时,我在点击“门”类型时运行此代码

def handleCollisionWith(self, name, other):

    if other.kind == 'door':
        level = 'level2'
        main()

它告诉我全局变量'main'没有定义,有没有办法从另一个文件中的另一个类中调用main?

1 个答案:

答案 0 :(得分:1)

请改为尝试:

def main(level): #note i added the level parameter that you have to pass in
    if level == "level1":
        p = Platformer('Adventure Time!', 'map1.tmx', 600, 600, 30)
    else:
        p = Platformer('Adventure Time!', 'map2.tmx', 600, 600, 30)
    p.main_loop()


def handleCollisionWith(self, name, other):
    if other.kind == 'door':
        level = 'level2'
        Class_name.main(level) #you have to call main() with reference to the class it is in