import pygame pygame.init() screen = pygame.display.set_mode((1920, 1015)) pygame.display.set_caption("Game_name") clock = pygame.time.Clock() dt = 0 player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2) floor_image = pygame.transform.scale(pygame.image.load("Floor.png").convert_alpha(), (30, 30)) #class Player(pygame.sprite.Sprite): #def __init__(self, size, pos, walls) player = pygame.transform.scale(pygame.image.load("Player.png").convert_alpha(), (25, 30)) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill("cyan") for j in range(10,20): for i in range(26,38): screen.blit(floor_image, (30*i, 30*j)) screen.blit(player, (player_pos.x, player_pos.y)) keys = pygame.key.get_pressed() if keys[pygame.K_w]: player_pos.y -= 200 * dt if keys[pygame.K_s]: player_pos.y += 200 * dt if keys[pygame.K_a]: player_pos.x -= 200 * dt if keys[pygame.K_d]: player_pos.x += 200 * dt pygame.display.flip() dt = clock.tick(60)/1000 class Camera: def __init__(self, player, size=(400, 300)): self.player = player self.center = pygame.display.get_surface().get_rect().center self.size = size self.player_size = self.player.rect.size self.speed_x = 0 self.speed_y = 0 def update(self, dt, sprites): x_move = abs(self.player.rect.centerx - self.center[0]) > self.size[0] // 2 y_move = abs(self.player.rect.centery - self.center[1]) > self.size[1] // 2 if x_move or y_move: for sprite in sprites: if x_move: self.speed_x = (self.player.rect.centerx - self.center[0]) * 2 * dt sprite.rect.x -= self.speed_x if y_move: self.speed_y = (self.player.rect.centery - self.center[1]) * 2 * dt sprite.rect.y -= self.speed_y pygame.quit()