菜单:
import myGame as gameMod
def startGame(screen, level, musicVolume, effectsVolume, numControllers):
game = gameMod.Game()
game.main(screen, level, musicVolume, effectsVolume, numControllers)
myGame:
class Game(object):
def main(self, screen, level, musicVolume, effectsVolume, numControllers):
self.timer = 0
class EnemyBullet(pygame.sprite.Sprite):
def __init__(self, location, kind, numShots, ID, *groups):
self.dx = math.sin(game.timer) * 100
但这会引发错误
NameError: global name 'game' is not defined
我希望game.timer能够引用Menu中创建的Game()实例,即使EnemyBullet和Game类都保存在myGame模块中。 当myGame模块运行并且存在这些行时,它会运行而没有任何错误。我假设这是因为Game()实例是全局的,并且可以找到它与导入时的情况不同。
if __name__ == "__main__":
game = Game()
game.main(screen, 1, 50, 0, 0)
答案 0 :(得分:0)
我不确定这里发生了什么。你没有将游戏导入gameMod吗?所以,不应该是gameMod.timer。
现在,如果您从游戏模块中调用计时器,那么为什么不能直接将其作为计时器引用。我假设计时器是游戏中的变量,因此存在于其命名空间中。