import pygame , sys
state = 0
class GameCore:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((1600,1000))
def screen_update(self):
self.screen.fill((0,0,0))
pygame.display.update()
def run_menu(self):
while True:
self.screen_update()
self.monitor()
def monitor(self):
for e in pygame.event.get():
if e.type == pygame.QUIT :
pygame.quit()
sys.exit()
elif e.type == pygame.KEYDOWN and e.type == pygame.K_SPACE:
global state
state = 1
class GamePlay(GameCore):
def screen_update(self):
self.screen.fill((255,255,255))
pygame.display.update()
def run_game(self):
while True:
self.screen_update()
self.monitor()
class GameState:
def run(self):
while True:
print(state)
if __name__ == '__main__':
game_core = GameCore()
game_play = GamePlay()
game_state = GameState()
game_state.run()
- 如图,在GameState类里的run方法根本没调用其他类中的run_game,run_menu等方法,但运行程序会出现run_menu方法的运行效果,这是什么情况??请问有大师能帮我找下问题吗,我正在学习用pygame制作游戏
- 我原本期望通过改变state状态量的值来让run方法循环不同的方法,预期的run()方法如下,但现在问题是
1.下方的代码不能预期地通过改变state的值进入不同的循环
2.上方的代码莫名运行了根本不在run()方法内的一些程序
class GameState:
def run(self):
while state == 0:
game_core.run_menu()
while state == 1:
game_play.run_game()
请问能否帮忙解决,指点我存在的问题和误解,谢谢分享