<p>除了jornsharpe所说的,你不应该每次按键都加载精灵。
取而代之的是在加载之前加载所有的图像,并在必要时进行blit。你知道吗</p>
<p>因此,您的代码如下所示:</p>
<pre><code>sprite_back = pygame.image.load('CharacterBack.png')
sprite_front = pygame.image.load('CharacterFront.png')
sprite_right = pygame.image.load('CharacterRight.png')
sprite_left = pygame.image.load('CharacterLeft.png')
sprite = sprite_front
while True:
DISPLAYSURF.blit(sprite,(spritex,spritey))
if charLeft == True:
spritex -= 10
elif charRight == True:
spritex += 10
elif charUp == True:
spritey -= 10
elif charDown == True:
spritey += 10
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if (event.key == K_LEFT):
charLeft = True
sprite=sprite_left
elif (event.key == K_d):
charRight = True
sprite=sprite_right
elif (event.key == K_w):
charUp = True
sprite=sprite_back
elif (event.key == K_s):
charDown = True
sprite=sprite_front
if event.type == KEYUP:
if (event.key == K_LEFT):
charLeft = False
elif (event.key == K_d):
charRight = False
elif (event.key == K_w):
charUp = False
elif (event.key == K_s):
charDown = False
</code></pre>