Я предполагаю, что вы хотите перемещать прямоугольник туда и обратно при движении мыши.
Здесь есть две вещи, которые вы делаете неправильно:
1. исправьте это: if rectXpos > 500:
, так как вам нужно уменьшить X, когда оно достигнет 500 2. когда достигните rectXpos 501, он должен изменить свое направление, пока не достигнет rectXpos 0 но вы уменьшили позицию, пока она не превысит 500, поэтому она застрянет между 499 до 501
правильный код:
import pygame
Red = 255, 0, 0
Black= 0,0,0
rectXpos = 2
rectypos = 2
speed = 2
screenedgex = 500
pygame.init()
window = pygame.display.set_mode(size=(500, 500))
clock = pygame.time.Clock()
running = True
k=1 #here is k used to indicate direction
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.display.update()
window.fill(Black)
square = pygame.draw.rect(window, Red, [rectXpos, rectypos, 50, 50],2)
rectXpos += 2*k #here is addition of 2 in given direction
if (rectXpos > 500) or (rectXpos < 0): #here is condition to change direction
k=-k
clock.tick(60)
print(rectXpos)