**当我按下向上箭头时,子画面会跳跃,但是当它下降时,它会继续下降。这是我的代码。它不能使用向左和向右键来做到这一点。
x = (display_width * 0.1)
y = (display_height * 0.75)
x_change = 0
y_change = 0
over = False
while over == False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change -= 5
if event.key == pygame.K_RIGHT:
x_change += 5
if event.key == pygame.K_UP:
y_change = -30
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
x_change = 0
if event.key == pygame.K_RIGHT:
x_change = 0
if event.key == pygame.K_UP:
y_change = 30
x += x_change
y += y_change
答案 0 :(得分:0)
此问题是由y_change
在以后的处理期间保留在30
上引起的。
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
x_change = 0
if event.key == pygame.K_RIGHT:
x_change = 0
if event.key == pygame.K_UP:
y_change = 30 # <=== HERE
因此,当事件触发时,y_change
变为30-因此位置向下移动。但是在下一个循环中,y_change
仍然是 30,因此它一次又一次地向下移动。