游戏循环事件监听
Game Loop Event Listening
我在蛇类游戏中有这个运动循环
运动
while not gameExit:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
#Arrow keys move snake head.
if event.key == pygame.K_LEFT:
lead_y_change=0
lead_x_change -= 10
if event.key == pygame.K_RIGHT:
lead_y_change=0
lead_x_change += 10
if event.key == pygame.K_UP:
lead_x_change=0
lead_y_change -= 10
if event.key == pygame.K_DOWN:
lead_x_change=0
lead_y_change += 10
lead_x += lead_x_change
lead_y += lead_y_change
gameDisplay.fill(white)
pygame.draw.rect(gameDisplay, black, [lead_x, lead_y, 10, 10])
pygame.display.update()
应该发生什么:
当我按下任何箭头键时,循环应该 运行 一遍又一遍地更新动作,黑色小矩形应该飞出屏幕,再也不会出现。
会发生什么:
矩形在按下键时移动 10,然后在按下键时移动 10。然后 20 键向下和 20 键向上等等。 . .它似乎也对鼠标运动做出反应。我不知道为什么。我正在使用 python 3.4 和 pygame 1.9.
这是怎么回事?我该如何更正它以获得预期的结果?
感谢您的帮助!
[发帖作为答案,这样这个问题才能正确完成]
看起来以 lead_x += lead_x_change
开头的行需要缩进一级。现在它只会在事件发生时转到这些行。
我在蛇类游戏中有这个运动循环
运动while not gameExit:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
#Arrow keys move snake head.
if event.key == pygame.K_LEFT:
lead_y_change=0
lead_x_change -= 10
if event.key == pygame.K_RIGHT:
lead_y_change=0
lead_x_change += 10
if event.key == pygame.K_UP:
lead_x_change=0
lead_y_change -= 10
if event.key == pygame.K_DOWN:
lead_x_change=0
lead_y_change += 10
lead_x += lead_x_change
lead_y += lead_y_change
gameDisplay.fill(white)
pygame.draw.rect(gameDisplay, black, [lead_x, lead_y, 10, 10])
pygame.display.update()
应该发生什么:
当我按下任何箭头键时,循环应该 运行 一遍又一遍地更新动作,黑色小矩形应该飞出屏幕,再也不会出现。
会发生什么:
矩形在按下键时移动 10,然后在按下键时移动 10。然后 20 键向下和 20 键向上等等。 . .它似乎也对鼠标运动做出反应。我不知道为什么。我正在使用 python 3.4 和 pygame 1.9.
这是怎么回事?我该如何更正它以获得预期的结果?
感谢您的帮助!
[发帖作为答案,这样这个问题才能正确完成]
看起来以 lead_x += lead_x_change
开头的行需要缩进一级。现在它只会在事件发生时转到这些行。