]> Skullheadx's Git Forge - Pygame-Jam.git/commitdiff
ability to import levels into game
authorSkullheadx <704277@pdsb.net>
Sat, 9 Jul 2022 19:19:22 +0000 (15:19 -0400)
committerSkullheadx <704277@pdsb.net>
Sat, 9 Jul 2022 19:19:22 +0000 (15:19 -0400)
LevelCreator.py
Levels/Level1.txt
Levels/Level2.txt [deleted file]
World.py

index decbb4f472fa046de4b21222235fcabb26f2487c..61b9904537f60b00204a2e3c4f5caf324def2f4e 100644 (file)
@@ -1,9 +1,10 @@
+import os
+
+import numpy as np
 import pygame.mouse
 
-from Setup import *
 from Function.createText import createText
-import numpy as np
-import os
+from Setup import *
 
 
 class LevelCreator:
@@ -42,21 +43,41 @@ class LevelCreator:
                         Button((0, 0), f"{self.collision_layer=}", self.toggle_collidable),
                         Button((0, 0), "Toggle Hitboxes", self.toggle_show_hitboxes),
                         Button((0, 0), "Export", self.export)]
-        
+
         self.level = -2
 
     def export(self):
+        # for layer in out:
+        #     for i,block in enumerate(layer):
+        #         layer[i] = Block(block.position,block.collision_layer,block.texture_name)
+
         counter = 1
+
+        def get_key(mask):
+            for key, value in self.blocks.items():
+                if mask == value:
+                    return key
+
         while True:
             try:
-                with open(os.path.join("Levels",f'Level{counter}.txt'), 'x') as f:
-                    f.write(str(self.get_canvas_layers()))
+                with open(os.path.join("Levels", f'Level{counter}.txt'), 'x') as f:
+                    out = ""
+                    for layer in self.get_canvas_layers():
+                        t = ""
+                        pos = ""
+                        texture = ""
+                        for block in layer:
+                            t += f"{get_key(block.collision_layer)}|"
+                            pos += f"{block.position.x},{block.position.y}|"
+                            texture += f"{block.texture_name}|"
+                        out += f"{t[:-1]}\n{pos[:-1]}\n{texture[:-1]}\n"
+                    f.write(out)
+
                 print(f"File saved as Level{counter} in folder Levels")
                 break
             except FileExistsError:
                 counter += 1
 
-
     def toggle_collidable(self):
         if self.collision_layer == "none":
             self.collision_layer = "world"
@@ -199,6 +220,13 @@ class LevelCreator:
                     if self.show_hitboxes:
                         block.show_hitbox(surf, self.blocks["world"])
 
+        pg.draw.line(surf, (255, 0, 0), self.apply_transformations((self.reverse_transformations((0, 0)).x, 0)),
+                     self.apply_transformations((self.reverse_transformations((SCREEN_WIDTH, 0)).x, 0)),
+                     math.ceil(self.zoom * 5))
+        pg.draw.line(surf, (255, 0, 0), self.apply_transformations((0, self.reverse_transformations((0, 0)).y)),
+                     self.apply_transformations((0, self.reverse_transformations((0, SCREEN_HEIGHT)).y)),
+                     math.ceil(self.zoom * 5))
+
         display_img = EditorBlock.textures[self.textures[self.current_texture]].copy()
         display_img.set_alpha(100)
         surf.blit(pg.transform.scale(display_img, self.apply_rect_transformations(display_img.get_rect()).size),
@@ -273,6 +301,7 @@ class EditorBlock:
     def __init__(self, pos, collision_layer, texture="PLACEHOLDER"):
         self.position = pg.Vector2(pos)
         self.texture = self.textures[texture]
+        self.texture_name = texture
 
         self.collision_layer = collision_layer
 
index 934467b8b2189e47e06822491f5c835cc062f4f0..401a5e40459d6f685ef4d5ca4feac79708c0eb82 100644 (file)
@@ -1 +1,15 @@
-[[<LevelCreator.EditorBlock object at 0x000001691CD28B80>, <LevelCreator.EditorBlock object at 0x000001691CD28BE0>, <LevelCreator.EditorBlock object at 0x000001691CD28E50>, <LevelCreator.EditorBlock object at 0x000001691CD28D90>, <LevelCreator.EditorBlock object at 0x000001691CD28EB0>, <LevelCreator.EditorBlock object at 0x000001691CD28DF0>, <LevelCreator.EditorBlock object at 0x000001691CD29090>, <LevelCreator.EditorBlock object at 0x000001691CD28FD0>, <LevelCreator.EditorBlock object at 0x000001691CD28E20>, <LevelCreator.EditorBlock object at 0x000001691CD28DC0>, <LevelCreator.EditorBlock object at 0x000001691CD290C0>, <LevelCreator.EditorBlock object at 0x000001691CD28CD0>, <LevelCreator.EditorBlock object at 0x000001691CD29000>, <LevelCreator.EditorBlock object at 0x000001691CD28EE0>, <LevelCreator.EditorBlock object at 0x000001691CD292A0>, <LevelCreator.EditorBlock object at 0x000001691CD28D30>, <LevelCreator.EditorBlock object at 0x000001691CD29240>, <LevelCreator.EditorBlock object at 0x000001691CD28F70>], [], [], [], []]
\ No newline at end of file
+none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world
+1400.0,750.0|1300.0,800.0|1350.0,750.0|1300.0,750.0|1250.0,750.0|1250.0,800.0|1200.0,750.0|1050.0,750.0|1000.0,750.0|950.0,750.0|900.0,750.0|850.0,750.0|800.0,750.0|750.0,750.0|700.0,750.0|650.0,750.0|600.0,750.0|550.0,750.0|500.0,750.0|450.0,750.0|400.0,750.0|350.0,750.0|300.0,750.0|250.0,750.0|200.0,750.0|150.0,750.0|100.0,750.0|50.0,750.0|0.0,750.0|0.0,800.0|50.0,800.0|100.0,800.0|1100.0,750.0|1150.0,750.0|1200.0,800.0|1150.0,800.0|1100.0,800.0|1050.0,800.0|1000.0,800.0|800.0,800.0|750.0,800.0|700.0,800.0|650.0,800.0|600.0,800.0|250.0,800.0|200.0,800.0|150.0,800.0|1450.0,700.0|1500.0,700.0|1750.0,700.0|1800.0,700.0|1850.0,700.0|1900.0,700.0|1950.0,700.0|2000.0,700.0|2050.0,700.0|2050.0,750.0|2000.0,750.0|1950.0,750.0|1900.0,750.0|1850.0,750.0|1800.0,750.0|1700.0,700.0|1650.0,700.0|1600.0,700.0|1550.0,700.0|1750.0,750.0|1700.0,750.0|1650.0,750.0|1600.0,750.0|1550.0,750.0|1500.0,750.0|1450.0,750.0|2100.0,750.0|2450.0,700.0|2450.0,650.0|2450.0,750.0|2500.0,750.0|2500.0,700.0|2500.0,650.0|2500.0,600.0|2550.0,600.0|2550.0,650.0|2550.0,700.0|2550.0,750.0|2600.0,750.0|2600.0,700.0|2600.0,650.0|2600.0,600.0|2400.0,800.0|2450.0,800.0|2650.0,800.0|2600.0,800.0|2550.0,800.0|2500.0,800.0|2300.0,850.0|2350.0,850.0|2400.0,850.0|2450.0,850.0|2500.0,850.0|2550.0,850.0|2600.0,850.0|2650.0,850.0|2650.0,900.0|2600.0,900.0|2250.0,850.0|2250.0,900.0|2300.0,900.0|2350.0,900.0|2400.0,900.0|2450.0,900.0|2500.0,900.0|2550.0,900.0|2650.0,950.0|2600.0,950.0|2550.0,950.0|2500.0,950.0|2450.0,950.0|2400.0,950.0|2350.0,950.0|2300.0,950.0|2250.0,950.0|2200.0,950.0|2150.0,950.0|2100.0,950.0|2050.0,950.0|2000.0,950.0|1950.0,950.0|1900.0,950.0|1850.0,950.0|1800.0,950.0|1750.0,950.0|1700.0,950.0|1650.0,950.0|1600.0,950.0|1550.0,950.0|1500.0,950.0|1450.0,950.0|1400.0,950.0|1350.0,950.0|1300.0,950.0|1250.0,950.0|1200.0,950.0|1150.0,950.0|1100.0,950.0|1050.0,950.0|1000.0,950.0|950.0,950.0|900.0,950.0|850.0,950.0|800.0,950.0|750.0,950.0|700.0,950.0|650.0,950.0|600.0,950.0|550.0,950.0|450.0,900.0|400.0,900.0|350.0,900.0|300.0,900.0|250.0,900.0|200.0,900.0|150.0,900.0|100.0,900.0|50.0,900.0|0.0,900.0|0.0,950.0|50.0,950.0|100.0,950.0|150.0,950.0|200.0,950.0|250.0,950.0|300.0,950.0|350.0,950.0|400.0,950.0|450.0,950.0|500.0,950.0|500.0,900.0|550.0,900.0|600.0,900.0|650.0,900.0|700.0,900.0|750.0,900.0|800.0,900.0|850.0,900.0|900.0,900.0|1000.0,900.0|1050.0,900.0|1100.0,900.0|1150.0,900.0|1200.0,900.0|1250.0,900.0|1300.0,900.0|1350.0,900.0|1400.0,900.0|1450.0,900.0|1500.0,900.0|1400.0,850.0|1450.0,850.0|1500.0,850.0|1550.0,850.0|950.0,900.0|1600.0,850.0|1650.0,850.0|1700.0,850.0|1750.0,850.0|1800.0,850.0|1850.0,850.0|1900.0,850.0|1950.0,850.0|2000.0,850.0|2050.0,850.0|2100.0,850.0|2150.0,850.0|2200.0,850.0|2200.0,900.0|2150.0,900.0|2100.0,900.0|2050.0,900.0|2000.0,900.0|1950.0,900.0|1900.0,900.0|1850.0,900.0|1800.0,900.0|1750.0,900.0|1700.0,900.0|1650.0,900.0|1600.0,900.0|1550.0,900.0|1300.0,850.0|1250.0,850.0|1200.0,850.0|1150.0,850.0|1100.0,850.0|1050.0,850.0|1000.0,850.0|750.0,850.0|700.0,850.0|650.0,850.0|600.0,850.0|250.0,850.0|200.0,850.0|150.0,850.0|100.0,850.0|50.0,850.0|0.0,850.0|300.0,800.0|350.0,800.0|400.0,800.0|450.0,800.0|500.0,800.0|550.0,800.0|850.0,800.0|900.0,800.0|950.0,800.0|1350.0,800.0|1400.0,800.0|1450.0,800.0|1500.0,800.0|1550.0,800.0|1600.0,800.0|1650.0,800.0|1700.0,800.0|1750.0,800.0|1800.0,800.0|1850.0,800.0|1900.0,800.0|1950.0,800.0|2000.0,800.0|2050.0,800.0|2100.0,800.0|2150.0,800.0|1350.0,850.0|2100.0,700.0|950.0,850.0|900.0,850.0|850.0,850.0|800.0,850.0|550.0,850.0|500.0,850.0|450.0,850.0|400.0,850.0|350.0,850.0|300.0,850.0|800.0,550.0|800.0,600.0|750.0,600.0|750.0,650.0|800.0,650.0|850.0,650.0|0.0,700.0|50.0,700.0|100.0,700.0|150.0,700.0|200.0,700.0|250.0,700.0|300.0,700.0|350.0,700.0|400.0,700.0|450.0,700.0|500.0,700.0|550.0,700.0|600.0,700.0|650.0,700.0|700.0,700.0|750.0,700.0|800.0,700.0|850.0,700.0|900.0,700.0|950.0,700.0|1000.0,700.0|1050.0,700.0|1100.0,700.0|1150.0,700.0|1200.0,700.0|1250.0,700.0|1300.0,700.0|1350.0,700.0|1400.0,700.0|1450.0,650.0|1500.0,650.0|1550.0,650.0|1600.0,650.0|1650.0,650.0|1700.0,650.0|1750.0,650.0|1800.0,650.0|1850.0,650.0|1900.0,650.0|1950.0,650.0|2000.0,650.0|2050.0,650.0|2100.0,650.0|2150.0,700.0|2150.0,750.0|2200.0,800.0|2250.0,800.0|2300.0,800.0|2350.0,800.0|2500.0,550.0|2550.0,550.0|2600.0,550.0|2650.0,600.0|2450.0,600.0|2400.0,650.0|2400.0,700.0|2400.0,750.0|2650.0,650.0|2650.0,700.0|2650.0,750.0
+DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|DIRT|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONE|DIRT|STONE|STONE|STONE|STONEDIRT|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|STONE|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|GRASS|DIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONEDIRT|STONE|STONE|STONE|STONE|STONE|STONE|STONE
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Levels/Level2.txt b/Levels/Level2.txt
deleted file mode 100644 (file)
index d022992..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[[<LevelCreator.EditorBlock object at 0x000002CEB01295A0>, <LevelCreator.EditorBlock object at 0x000002CEB01294E0>, <LevelCreator.EditorBlock object at 0x000002CEB0128CA0>, <LevelCreator.EditorBlock object at 0x000002CEB0129090>, <LevelCreator.EditorBlock object at 0x000002CEB01295D0>, <LevelCreator.EditorBlock object at 0x000002CEB0128B80>, <LevelCreator.EditorBlock object at 0x000002CEB0128EE0>, <LevelCreator.EditorBlock object at 0x000002CEB0128E20>, <LevelCreator.EditorBlock object at 0x000002CEB0128CD0>, <LevelCreator.EditorBlock object at 0x000002CEB0129510>, <LevelCreator.EditorBlock object at 0x000002CEB0129060>, <LevelCreator.EditorBlock object at 0x000002CEB0129540>, <LevelCreator.EditorBlock object at 0x000002CEB0129300>, <LevelCreator.EditorBlock object at 0x000002CEB0129210>, <LevelCreator.EditorBlock object at 0x000002CEB0128EB0>, <LevelCreator.EditorBlock object at 0x000002CEB01292D0>, <LevelCreator.EditorBlock object at 0x000002CEB0128D60>, <LevelCreator.EditorBlock object at 0x000002CEB0128D30>, <LevelCreator.EditorBlock object at 0x000002CEB0128F40>, <LevelCreator.EditorBlock object at 0x000002CEB0128E50>], [], [], [], []]
\ No newline at end of file
index c7ddb92d1e066fb3214b04c498f2d33f4bd7596c..5b2b69c933f45355514feb242375c4e01830da8e 100644 (file)
--- a/World.py
+++ b/World.py
@@ -1,56 +1,31 @@
 from Setup import *
 from Block import Block
+from os import path
+
 
 class World:
 
     def __init__(self, collision_layer):
         self.collision_layer = collision_layer
         self.blocks = []
-        self.add_world()
-
-    def add_world(self):
-        for i in range(25):
-            self.blocks.append(Block((i * Block.width,SCREEN_HEIGHT*3/4),self.collision_layer["world"],"GRASS"))
-            self.blocks.append(Block((i * Block.width,SCREEN_HEIGHT*3/4 + Block.height),self.collision_layer["world"],"DIRT"))
-            if random.random() < 0.5:
-                self.blocks.append(
-                    Block((i * Block.width, SCREEN_HEIGHT * 3 / 4 + Block.height * 2), self.collision_layer["world"],
-                          "STONE"))
-            else:
-                self.blocks.append(
-                    Block((i * Block.width, SCREEN_HEIGHT * 3 / 4 + Block.height * 2), self.collision_layer["world"],
-                          "DIRT"))
-            self.blocks.append(Block((i * Block.width,SCREEN_HEIGHT*3/4 + Block.height * 3),self.collision_layer["world"],"STONE"))
-            self.blocks.append(Block((i * Block.width,SCREEN_HEIGHT*3/4 + Block.height * 4),self.collision_layer["world"],"STONE"))
-
-        self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -1),self.collision_layer["none"],"TREEBARK"))
-        self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -2),self.collision_layer["none"],"TREEBARK"))
-        self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -3),self.collision_layer["none"],"TREEBARK"))
-        self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -4),self.collision_layer["none"],"TREEBARK"))
-
-        self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -3),self.collision_layer["none"],"LEAFS"))
-        self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -4),self.collision_layer["none"],"LEAFS"))
-        self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -5),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 10,SCREEN_HEIGHT*3/4 + Block.height * -6),self.collision_layer["none"],"LEAFS"))
-
-        self.blocks.append(Block((Block.width * 9,SCREEN_HEIGHT*3/4 + Block.height * -3),self.collision_layer["none"],"LEAFS"))
-        self.blocks.append(Block((Block.width * 9,SCREEN_HEIGHT*3/4 + Block.height * -4),self.collision_layer["none"],"LEAFS"))
-        self.blocks.append(Block((Block.width * 9,SCREEN_HEIGHT*3/4 + Block.height * -5),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 9,SCREEN_HEIGHT*3/4 + Block.height * -6),self.collision_layer["none"],"LEAFS"))
-
-        self.blocks.append(Block((Block.width * 11,SCREEN_HEIGHT*3/4 + Block.height * -3),self.collision_layer["none"],"LEAFS"))
-        self.blocks.append(Block((Block.width * 11,SCREEN_HEIGHT*3/4 + Block.height * -4),self.collision_layer["none"],"LEAF"))
-        self.blocks.append(Block((Block.width * 11,SCREEN_HEIGHT*3/4 + Block.height * -5),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 11,SCREEN_HEIGHT*3/4 + Block.height * -6),self.collision_layer["none"],"LEAFS"))
-
-
-        # self.blocks.append(Block((Block.width * 12,SCREEN_HEIGHT*3/4 + Block.height * -3),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 12,SCREEN_HEIGHT*3/4 + Block.height * -4),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 12,SCREEN_HEIGHT*3/4 + Block.height * -5),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 8,SCREEN_HEIGHT*3/4 + Block.height * -3),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 8,SCREEN_HEIGHT*3/4 + Block.height * -4),self.collision_layer["none"],"LEAFS"))
-        # self.blocks.append(Block((Block.width * 8,SCREEN_HEIGHT*3/4 + Block.height * -5),self.collision_layer["none"],"LEAFS"))
+        self.level = 1
+        self.add_world(self.level)
+
+    def add_world(self, level):
+        with open(path.join("Levels", f'Level{level}.txt'), 'r') as f:
+            file_contents = f.read().split("\n")
+
+
+        for i in range(0,len(file_contents)-1,3):
+            layer = file_contents[i].split("|")
+            pos = file_contents[i+1].split("|")
+            texture = file_contents[i+2].split("|")
 
+            for l,p,t in zip(layer,pos,texture):
+                if p == "":
+                    break
+                x,y = p.split(',')
+                self.blocks.append(Block((float(x),float(y)),self.collision_layer[l],t))
 
     def update(self, delta):
         for block in self.blocks: