From 6b2a8fa21f5755568f98ddeaeaf860407558059f Mon Sep 17 00:00:00 2001 From: Gerhards Kristians Tillers Date: Mon, 12 Feb 2024 10:47:06 +0000 Subject: [PATCH] Upload files to "Game_1" --- Game_1/Game_1.pyproj | 35 ++++++++ Game_1/Main.py | 197 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 Game_1/Game_1.pyproj create mode 100644 Game_1/Main.py diff --git a/Game_1/Game_1.pyproj b/Game_1/Game_1.pyproj new file mode 100644 index 0000000..077ef49 --- /dev/null +++ b/Game_1/Game_1.pyproj @@ -0,0 +1,35 @@ + + + Debug + 2.0 + 5a0a8f0a-4743-4282-a2fa-e1f09ffc6a22 + . + Game_1.py + + + . + . + Game_1 + Game_1 + + + true + false + + + true + false + + + + + + + + + + + + \ No newline at end of file diff --git a/Game_1/Main.py b/Game_1/Main.py new file mode 100644 index 0000000..76d1138 --- /dev/null +++ b/Game_1/Main.py @@ -0,0 +1,197 @@ +import pygame +from time import sleep + +from pygame.sprite import Sprite + +pygame.init() + +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 + + + +class Wall(pygame.sprite.Sprite): + def __init__(self, size, pos) -> None: + super().__init__() + self.image = pygame.surface.Surface(size) + self.image.fill("red") + self.rect = self.image.get_rect(center=pos) + +class Floor(pygame.sprite.Sprite): + def __init__(self, size, pos) -> None: + super().__init__() + + +def create_floor(file_name): + floor = [] + with open (file_name) as f: + lines = f.readlines() + for i, line in enumerate(lines[::2]): + if floor == "#": + floor.append(Floor((30,30), (30 + 30*i))) + return floor + + +def create_walls(file_name): + walls = [] + with open(file_name) as f: + lines = f.readlines() + for i, line in enumerate(lines[::2]): + for j, floor in enumerate(line[1::2]): + if floor == "|": + walls.append(Wall((5, 30), (15 + 30*j, 30*i))) + for i, line in enumerate(lines[1::2]): + for j, floor in enumerate(line[::2]): + if floor == "-": + walls.append(Wall((30, 5), (30*j, 15 + 30*i))) + + return walls + +class Player(pygame.sprite.Sprite): + def __init__(self): + super().__init__() + self.right = True + self.move = True + self.player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2) + self.dt = 0 + self.keys = pygame.key.get_pressed() + self.player_right = pygame.transform.scale(pygame.image.load("Sprites/Idle/Player_right.png").convert_alpha(), (35, 40)), + self.player_run_right_1 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_1.png").convert_alpha(), (35, 40)), + self.player_run_right_2 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_2.png").convert_alpha(), (35, 40)), + self.player_run_right_3 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_3.png").convert_alpha(), (35, 40)), + self.player_run_right_4 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_4.png").convert_alpha(), (35, 40)), + self.player_run_right_5 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_5.png").convert_alpha(), (35, 40)), + self.player_run_right_6 = pygame.transform.scale(pygame.image.load("Sprites/Running/Player_run_right_6.png").convert_alpha(), (35, 40)) + + self.player_left = pygame.transform.scale(pygame.image.load("Sprites/Idle/Player_left.png").convert_alpha(), (35, 40)) + + + + + def movement(self): + if self.keys[pygame.K_w]: + self.player_pos.y -= 200 * dt + if self.keys[pygame.K_s]: + self.player_pos.y += 200 * dt + if self.keys[pygame.K_a]: + self.player_pos.x -= 200 * dt + screen.blit(self.player_left, (self.player_pos.x, self.player_pos.y)) + right = False + + if self.keys[pygame.K_d]: + self.player_pos.x += 200 * dt + screen.blit(self.player_right, (self.player_pos.x, self.player_pos.y)) + self.right = True + self.move = True + else: + move = False + + + def sprites(self): + if self.right == True: + screen.blit(self.player_right, (self.player_pos.x, self.player_pos.y)) + else: + screen.blit(self.player_left, (self.player_pos.x, self.player_pos.y)) + + while self.move == True: + screen.blit(self.player_run_right_1, (self.player_pos.x, self.player_pos.y)) + sleep(0.05) + screen.blit(self.player_run_right_2, (self.player_pos.x, self.player_pos.y)) + sleep(0.05) + screen.blit(self.player_run_right_3, (self.player_pos.x, self.player_pos.y)) + sleep(0.05) + screen.blit(self.player_run_right_4, (self.player_pos.x, self.player_pos.y)) + sleep(0.05) + screen.blit(self.player_run_right_5, (self.player_pos.x, self.player_pos.y)) + sleep(0.05) + screen.blit(self.player_run_right_6, (self.player_pos.x, self.player_pos.y)) + sleep(0.05) + + + + + + + + +screen = pygame.display.set_mode((1920, 1015)) +pygame.display.set_caption("Game_name") + +clock = pygame.time.Clock() + + + + +floor_image = pygame.transform.scale(pygame.image.load("Floor.png").convert_alpha(), (30, 30)) + + + + + +running = True + +wall_list = create_walls("lvl.txt") +for wall in wall_list: + print(f'{wall.rect.size})x = {wall.rect.x}; y = {wall.rect.y}') +walls = pygame.sprite.Group(*wall_list) + +floor_list = create_floor("lvl.txt") +for floor in floor_list: + print(f'{floor.rect.size})x = {floor.rect.x}; y = {floor.rect.y}') +floor = pygame.sprite.Group(*floor_list) + + +player = Player() +all_sprites = pygame.sprite.Group() +all_sprites.add(player) + +while running: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + + screen.fill("cyan") + for y in range(10,20): + for x in range(26,38): + screen.blit(floor_image, (30*x, 30*y)) + + all_sprites.draw(screen) + + + walls.draw(screen) + pygame.display.flip() + + dt = clock.tick(60)/1000 + + floor.draw(screen) + + + + + + + + + + + + +pygame.quit()