在pygame中拖动视图

问题描述

我正在拖动视图并且在按向左或向右箭头之前也不会连续移动

org.apache.kafka.common.errors.RecordTooLargeException: The message is 10540452 bytes when serialized which is larger than 750000,which is the value of the max.request.size configuration.

Dragging effect during pressing for move

解决方法

您必须在每一帧中清除显示或绘制背景。整个场景在每一帧中重新绘制,绘制的所有内容都绘制在显示表面上。因此需要在应用程序循环的每一帧开始时清除显示:

while running:
    # [...]

    screen.blit(background,(0,0))
    player(playerX,playerY)
    pygame.display.update()
    clock.tick(120)

使用 pygame.key.get_pressed() 而不是 KEYDOWN 事件。

键盘事件(参见 pygame.event 模块)仅在键的状态改变时发生一次。 KEYDOWN 事件在每次按下键时发生一次。 KEYUP 每次释放键时出现一次。将键盘事件用于单个操作或逐步移动。

pygame.key.get_pressed() 返回一个包含每个键状态的序列。如果某个键被按下,则该键的状态为 True,否则为 False。使用 pygame.key.get_pressed() 评估按钮的当前状态并获得连续移动。

while running:
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        playerX -= playerX_change
    if keys[pygame.K_RIGHT]:
        playerX += playerX_change

    screen.blit(background,playerY)
    pygame.display.update()
    clock.tick(120)

另见How to get if a key is pressed pygame