如何让角色在 Pygame Python 3 中移动

时间:2021-07-12 19:05:44

标签: python pygame

我编写了一个程序来在 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 个像素>

0 个答案:

没有答案
相关问题