From c35b016b014eb280f2b0e5bc6d507b9e9a59163d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rom=C4=81ns=20=C5=A0aduncs?= <roman.shadunc@gmail.com>
Date: Thu, 1 Feb 2024 12:09:30 +0000
Subject: [PATCH] Rogue.lite.py

---
 Game_1/Roguelite!.py | 125 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 Game_1/Roguelite!.py

diff --git a/Game_1/Roguelite!.py b/Game_1/Roguelite!.py
new file mode 100644
index 0000000..1f0d34e
--- /dev/null
+++ b/Game_1/Roguelite!.py
@@ -0,0 +1,125 @@
+import pygame
+
+pygame.init()
+
+
+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)
+
+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)))
+
+
+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
+                
+
+
+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
+
+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)
+
+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))
+    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
+    
+    walls.draw(screen)
+    pygame.display.flip()
+
+    dt = clock.tick(60)/1000
+    
+    floor.draw(screen)
+
+
+
+
+    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()