0

When I run the following code to move the object it instead draws a line across the screen. how do I fix this?

import pygame, sys, random
from pygame.locals import QUIT
pygame.init()

screen = pygame.display.set_mode((400, 300))
screen.fill((255,255,255))
pygame.display.set_caption('platformer')
clock = pygame.time.Clock()

square = pygame.Surface((16,16))
square.fill((0,0,255))
square_rect = square.get_rect(center = [100, 150])

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    screen.blit(square, square_rect)
    square_rect.centerx += 5
  
          
    pygame.display.update()
    clock.tick(30)
MattDMo
  • 100,794
  • 21
  • 241
  • 231

1 Answers1

1

screen.fill should be inside the game loop

import pygame, sys, random
from pygame.locals import QUIT

pygame.init()

screen = pygame.display.set_mode((400, 300))
pygame.display.set_caption('platformer')
clock = pygame.time.Clock()

square = pygame.Surface((16, 16))
square.fill((0, 0, 255))
square_rect = square.get_rect(center=[100, 150])

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    screen.fill((255, 255, 255))
    screen.blit(square, square_rect)
    square_rect.centerx += 5

    pygame.display.update()
    clock.tick(30)
Jobo Fernandez
  • 905
  • 4
  • 13