In this script we have the basic code to move a sprite with an image in it. Github repository for pygame_components
import pygame from pygame.locals import * from random import choice, randrange from glob import glob import sys WINDOWWIDTH = w = 400 WINDOWHEIGHT = h = 400 screen = pygame.display.set_mode((w, h)) clock = pygame.time.Clock() pygame.display.set_caption("Astroid") g = pygame.sprite.Group() # num_order = [] score = 0 bgd = pygame.Surface((50, 50)) pygame.mixer.pre_init(44100, -16, 2, 512) pygame.init() pygame.mixer.quit() pygame.mixer.init(44100, -16, 2, 512) pygame.mixer.set_num_channels(32) # click = pygame.mixer.Sound("click.wav") # chimp = pygame.image.load("img\\chimp.png") counter = 0 counter_on: bool = 1 max_count = 100 cards_visible = 1 font = pygame.font.SysFont("Arial", 20) class Sprite(pygame.sprite.Sprite): def __init__(self, x, y): super(Sprite, self).__init__()self.x, self.y = x, y self.make_image() g.add(self) def make_image(self): self.image = pygame.image.load("img/ship.png") self.rect = pygame.Rect(self.x, self.y, 128, 64) def update(self): self.rect = pygame.Rect(self.x, self.y, 128, 64) def hide(): for s in g: bgd.fill((0, 240, 0)) s.image.blit(bgd, (0, 0)) def movements(): "Move a surface" player = Sprite(10, 10) moveLeft = False moveRight = False moveUp = False moveDown = False MOVESPEED = 1 while True: # Check for events. for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: # Change the keyboard variables. if event.key == K_LEFT or event.key == K_a: moveRight = False moveLeft = True if event.key == K_RIGHT or event.key == K_d: moveLeft = False moveRight = True if event.key == K_UP or event.key == K_w: moveDown = False moveUp = True if event.key == K_DOWN or event.key == K_s: moveUp = False moveDown = True if event.type == KEYUP: if event.key == K_ESCAPE: pygame.quit() sys.exit() if event.key == K_LEFT or event.key == K_a: moveLeft = False if event.key == K_RIGHT or event.key == K_d: moveRight = False if event.key == K_UP or event.key == K_w: moveUp = False if event.key == K_DOWN or event.key == K_s: moveDown = False # Draw the white background onto the surface. screen.fill((255, 255, 255)) # Move the player. if moveDown and player.rect.bottom < WINDOWHEIGHT: player.rect.top += MOVESPEED if moveUp and player.rect.top > 0: player.rect.top -= MOVESPEED if moveLeft and player.rect.left > 0: player.rect.left -= MOVESPEED if moveRight and player.rect.right < WINDOWWIDTH: player.rect.right += MOVESPEED # Draw the player onto the surface. g.draw(screen) # Draw the window onto the screen. pygame.display.update() clock.tick(120) if __name__ == "__main__": movements()