【发布时间】:2020-02-12 04:31:33
【问题描述】:
我认为这段代码会在按下键时导致矩形移动,并在释放键时导致矩形停止移动,但我一定遗漏了一些东西。谁能看到这段代码有什么问题?我试图让它在我按住键时移动一个矩形,当我像乒乓球一样释放它时停止。
import pygame, random, sys
from pygame.locals import *
fpsClock=pygame.time.Clock()
pygame.init()
WINDOWWIDTH = 600
WINDOWHEIGHT = 600
TEXTCOLOR = (255, 255, 255)
BACKGROUNDCOLOR = (0, 0, 255)
FPS = 40
BLACK = (0,0,0)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
rectY1 = 300
rectY2 = 300
Y1change = 0
Y2change = 0
keys = pygame.key.get_pressed()
def moveup():
rectY1 -= 10
pygame.display.set_caption('Pong')
def drawshapes():
pygame.init()
DISPLAY=pygame.display.set_mode((600,600),0,32)
DISPLAY.fill(BLACK)
pygame.draw.rect(DISPLAY,RED,(18,rectY1,10,120))
pygame.draw.rect(DISPLAY,RED,(580,rectY2,10,120))
pygame.draw.ellipse(DISPLAY,BLUE,(300,300,30,30))
drawshapes()
while True:
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if (event.key == pygame.K_UP):
Y1change -= 10
elif (event.key == pygame.K_DOWN):
Y1change += 10
elif (event.key == ord('w')):
Y2change -= 10
elif (event.key == ord('s')):
Y2change += 10
if event.type == KEYUP:
if (event.key == pygame.K_UP):
Y1change = 0
elif (event.key == pygame.K_DOWN):
Y1change = 0
elif (event.key == ord('w')):
Y2change = 0
elif (event.key == ord('s')):
Y2change = 0
rectY1 += Y1change
rectY2 += Y2change
drawshapes()
pygame.display.update()
fpsClock.tick(FPS)
pygame.display.update()
【问题讨论】: