From 04efd8876ab87b57422f61d1f02f61aab2b94e5d Mon Sep 17 00:00:00 2001 From: = Date: Sun, 14 Mar 2021 17:12:11 +0100 Subject: [PATCH] introduce tiles layer --- survival/game_map.py | 13 +++---------- survival/tile.py | 4 ---- survival/tile_layer.py | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 survival/tile_layer.py diff --git a/survival/game_map.py b/survival/game_map.py index d63f7d6..a5fdcb4 100644 --- a/survival/game_map.py +++ b/survival/game_map.py @@ -1,13 +1,9 @@ -import os - -import pygame from pygame.rect import Rect from survival.player import Player from survival.quad_tree import QuadTree from survival.stone import Stone -from survival.textureatlas import TextureAtlas -from survival.tile import Tile +from survival.tile_layer import TileLayer class GameMap: @@ -18,15 +14,12 @@ class GameMap: self.game_objects = [] self.player = Player() self.game_objects.append(self.player) - self.tiles = [[Tile() for x in range(width)] for y in range(height)] - self.atlas = TextureAtlas(os.path.join('..', 'assets', 'atlas.png')) + self.tiles_layer = TileLayer(width, height) self.game_objects.append(Stone([100, 200])) self.quad_tree = QuadTree(0, Rect(0, 0, width * 32, height * 32)) def draw(self, window): - for y in range(self.height): - for x in range(self.width): - window.blit(self.atlas.image_at(self.tiles[y][x].origin, (32, 32)), (x*32, y*32)) + self.tiles_layer.draw(window) for game_object in self.game_objects: game_object.draw(window) diff --git a/survival/tile.py b/survival/tile.py index ac813d3..b75276e 100644 --- a/survival/tile.py +++ b/survival/tile.py @@ -1,7 +1,3 @@ -import pygame -from random import randrange - - class Tile: def __init__(self): self.origin = (0, 0) diff --git a/survival/tile_layer.py b/survival/tile_layer.py new file mode 100644 index 0000000..154d9d1 --- /dev/null +++ b/survival/tile_layer.py @@ -0,0 +1,17 @@ +import os + +from survival.textureatlas import TextureAtlas +from survival.tile import Tile + + +class TileLayer: + def __init__(self, width, height): + self.width = width + self.height = height + self.tiles = [[Tile() for x in range(self.width)] for y in range(self.height)] + self.atlas = TextureAtlas(os.path.join('..', 'assets', 'atlas.png')) + + def draw(self, window): + for y in range(self.height): + for x in range(self.width): + window.blit(self.atlas.image_at(self.tiles[y][x].origin, (32, 32)), (x * 32, y * 32))