Я хочу создать программу, в которой я перемещаю прямоугольник с помощью клавиатуры, но он не перемещается, как будто он не понимает команды события. Я не могу найти, что случилось. Я думаю, что проблема заключается в последовательности команд, но, как новичок, я не могу ее найти. Может кто-нибудь мне помочь? Благодаря!python pygame не распознает событие клавиатуры
import pygame
import sys
from pygame.locals import *
fps = 30
fpsclock = pygame.time.Clock()
w = 640
h = 420
blue = (0, 0, 255)
white = (255, 255, 255)
x = w/3
y = 350
boxa = 20
movex = 0
def drawwindow():
global screen
pygame.init()
screen = pygame.display.set_mode((w, h))
screen.fill(blue)
def drawbox(box):
if box.right > (w - boxa):
box.right = (w - boxa)
if box.left < 0:
box.left = 0
pygame.draw.rect(screen, white, box)
def main():
global x
global movex
drawwindow()
box1 = pygame.Rect(x, y, boxa, boxa)
drawbox(box1)
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == K_RIGHT:
movex = +4
if event.key == K_LEFT:
movex = -4
if event.type == KEYUP:
if event.key == K_RIGHT:
movex = 0
if event.key == K_LEFT:
movex = 0
x += movex
pygame.display.update()
fpsclock.tick(fps)
if __name__ == '__main__':
main()
Я сделал это, но он снова не двигался – pacos
Это вообще не движется, или он двигается один раз после этого, а не больше? Он будет двигаться только после каждого нажатия клавиши. – Narpar1217
он вообще не движется – pacos