典型的应用程序有一个单独的应用程序循环。应用程序循环执行以下操作:
-
处理事件并根据事件更改状态
-
清除显示
-
绘制场景
-
更新显示
这个
KEYDOWY
事件在按下键时发生一次,但在按住键时不会连续发生。
对于连续移动,可以通过
pygame.key.get_pressed()
:
keys = pygame.key.get_pressed()
e、 g.如果
s公司
按下可由
keys[pygame.K_s]
.
添加坐标(
x
,
y
)矩形的位置。当按键时,连续操作主应用程序循环中的位置。
例如
增量
十
如果
丁
被压制和减量
十
如果
一
被按下。
增量
是的
如果
s公司
被压制和减量
是的
如果
西
按下:
import pygame
r_colour = (200, 100,100)
bg_colour = (0,175,200)
(width, height) = (600, 600)
x, y = 20, 30
screen = pygame.display.set_mode((width, height))
running = True
while running:
# handle the events
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# change coordinates
keys = pygame.key.get_pressed()
if keys[pygame.K_d]:
x += 1
if keys[pygame.K_a]:
x -= 1
if keys[pygame.K_s]:
y += 1
if keys[pygame.K_w]:
y -= 1
# clear the display
screen.fill(bg_colour)
# draw the scene
pygame.draw.rect(screen, r_colour, (x, y, 100, 100), 0)
# update the display
pygame.display.update()
pygame.quit()