我编写了一个程序来在 Pygame 中移动图像/字符:
import pygame, sys
from pygame.locals import *
pygame.init()
mainClock = pygame.time.Clock()
WHeight = 900
WWidth = 900
windowSurface = pygame.display.set_mode((WHeight, WWidth), 0, 32)
pygame.display.set_caption("Moving Character Simulation")
WHITE = (255, 255, 255)
player = pygame.Rect(300, 100, 40, 40)
playerImg = pygame.image.load('heartpixel.png')
MOVESPEED = 6
moveLeft = False
moveRight = False
moveUp = False
moveDown = False
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.type == K_LEFT:
moveRight = False
moveLeft = True
if event.type == K_RIGHT:
moveRight = True
moveLeft = False
if event.type == K_UP:
moveUp = True
moveDown = False
if event.type == K_DOWN:
moveUp = False
moveDown = True
if event.type == KEYUP:
if event.key == K_ESCAPE:
pygame.quit()
sys.exit()
if event.key == K_LEFT:
moveLeft = False
if event.key == K_RIGHT:
moveRight = False
if event.key == K_UP:
moveUp = False
if event.key == K_DOWN:
moveDown = False
windowSurface.fill(WHITE)
if moveDown and player.bottom < WHeight:
player.top += MOVESPEED
if moveUp and player.top < 0:
player.top -= MOVESPEED
if moveLeft and player.left < 0:
player.left -= MOVESPEED
if moveRight and player.right < WWidth:
player.right += MOVESPEED
playerStrech = pygame.transform.scale(playerImg, (40, 40))
windowSurface.blit(playerStrech, player)
pygame.display.update()
mainClock.tick(40)
但是,问题是角色不动。我该如何解决这个问题? 问题是该角色出现在 Pygame 弹出窗口屏幕上,但代码没有移动。我应该在这个程序中添加什么让角色在按下箭头键时能够连续移动 1 个像素,如果按下一秒然后松开则移动 1 个像素>