【发布时间】:2018-07-16 11:09:38
【问题描述】:
while g.running:
for event in pygame.event.get():
if event == pygame.QUIT:
g.running = False
g.run(Player_1)
quit()
当我运行这个循环时,它会完全跳过 for 循环,或者只执行一次,而且速度太快,我无法运行,它会继续运行。如何使循环正常工作? https://github.com/maartenww/100daysOfCode_projectOne
此外,g.run 基本上所做的只是更新游戏。所以它会绘制和/或移动所有精灵,将文本绘制到屏幕上并进行一些计算
class Game:
def __init__(self):
self.running = True
def run(self, player_1):
self.border_col(player_1)
self.load_text(player_1)
self.update_game(player_1)
def update_game(self, player_1):
clock.tick(FPS)
gameDisplay.fill(black)
gameDisplay.blit(self.xcolon, (0, 0))
gameDisplay.blit(self.actual_x, (25, 0))
gameDisplay.blit(self.ycolon, (0, 30))
gameDisplay.blit(self.actual_y, (25, 30))
gameDisplay.blit(self.acolon, (0, 60))
gameDisplay.blit(self.actual_a, (25, 60))
gameDisplay.blit(self.vcolon, (0, 90))
gameDisplay.blit(self.actual_v, (25, 90))
all_sprites.draw(gameDisplay)
Player.move_player(player_1)
Player.update_player(player_1)
pygame.display.update()
【问题讨论】:
-
你能把它缩小到一个更小的可重现的例子吗?
-
@doctorlove 你是什么意思?
-
就目前而言,您发布的代码并没有告诉我
g是什么。当然,有些人可以去阅读你的 github 代码。但是,问题不是自包含的。如果您更改 github 上的代码,那么这个问题对未来的人们将毫无意义。您能否包含一个具有相同行为的Game类的简化版本? -
还有一个问题 - 您期待哪些事件?
g.run行是否被一遍又一遍地调用,但你只得到一个事件(最多)?或者你是说它掉到quit? -
@doctorlove 啊现在我明白了,当然