В вашей игре есть состояние , которое описывает, в каком направлении движется ваш прямоугольник. Поэтому, когда вы выходите из экрана, это состояние изменяется.
Когда вы обновляете свою игру (что является одной из трех вещей, которые вы делаете в своем основном цикле: обрабатываете события, обновляете состояние игры, рисуете игру), вы смотрите на свое состояние и решаете, в каком направлении вы двигаете прямоугольник. , Затем вы проверяете, находится ли он вне экрана.
Вот минимальный пример:
import pygame
def main():
screen = pygame.display.set_mode((400, 200))
clock = pygame.time.Clock()
rect = pygame.Rect(100, 100, 32, 32)
direction = 1
while True:
for e in pygame.event.get():
if e.type == pygame.QUIT:
return
rect.move_ip(direction * 3, 0)
if not screen.get_rect().contains(rect):
direction *= -1
screen.fill((30, 30, 30))
pygame.draw.rect(screen, pygame.Color('dodgerblue'), rect)
clock.tick(120)
pygame.display.flip()
if __name__ == '__main__':
main()
![enter image description here](https://i.stack.imgur.com/oj41j.gif)