【发布时间】:2021-10-17 15:17:15
【问题描述】:
解释起来有点混乱。所以,如果你有问题,请问他们。我正在使用 pygame 创建游戏,当您使用“上”、“下”、“左”和“右”键时,我的“汽车”会移动。但是,按照我的编码方式,例如,当我释放右键但仍按住左键时,它会将移动更改为 0,并且无法识别左键仍被按住。它使运动相当奇怪。我正在努力让这个动作更流畅,让游戏更有趣,任何想法都有帮助,谢谢。
这是我的代码:
import pygame
#Initializes pygame
pygame.init()
#Create the screen
screen = pygame.display.set_mode((1000, 800))
#Icon and Caption
icon = pygame.image.load('redcar.png')
pygame.display.set_icon(icon)
pygame.display.set_caption("Placeholder")
# Car
car = pygame.image.load('redcar.png')
x = 500
y = 600
x_change = 0
y_change = 0
def player(x,y):
screen.blit(car, (x, y))
#Game loop, keep window open unless you quit the window
running = True
while running:
#RGB
screen.fill((255, 255, 255))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
#If key is pressed, check what key it was
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -1
if event.key == pygame.K_RIGHT:
x_change = 1
if event.key == pygame.K_UP:
y_change = -1
if event.key == pygame.K_DOWN:
y_change = 1
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 = 0
if event.key == pygame.K_DOWN:
y_change = 0
x += x_change
y += y_change
player(x,y)
#For each event, update window
pygame.display.update()
【问题讨论】:
-
您可以检查是否也没有按下计数器键:
if event.key == pygame.K_LEFT and not event.key == pygame.K_RIGHT: x_change = 0等等