diff --git a/src/agent.py b/src/agent.py index d9e860c..40d628a 100644 --- a/src/agent.py +++ b/src/agent.py @@ -1,11 +1,10 @@ from const import SAPPER_IDLE -import pygame as pg class Agent: - def __init__(self, x: int = 0, y: int = 0): + def __init__(self, x: int = 0, y: int = 0, direction: int = 1): self.name = "Kapitan Bomba" - self.img = pg.image.load(SAPPER_IDLE[1]) - self.dir = 1 + self.img = SAPPER_IDLE[direction] + self.direction = direction self.x = x self.y = y diff --git a/src/const.py b/src/const.py index 5212b40..e4f751c 100644 --- a/src/const.py +++ b/src/const.py @@ -9,7 +9,6 @@ main_path = os.path.dirname(os.getcwd()) WIDTH = 800 HEIGHT = 800 - IMAGES = [] for name, val in { 'grass_01': 0, @@ -37,14 +36,18 @@ for name, val in { ) ICON = main_path + '/images/mine_icon.png' -SAPPER_IDLE = [main_path + '/images/sapper_idle/agent0.png', - main_path + '/images/sapper_idle/agent1.png', - main_path + '/images/sapper_idle/agent2.png', - main_path + '/images/sapper_idle/agent3.png'] +SAPPER_IDLE = [] +for name in [ + 'agent0', + 'agent1', + 'agent2', + 'agent3', +]: + SAPPER_IDLE.append(pg.image.load( + main_path + '/images/sapper_idle/' + name + '.png' + )) -#pg.image.load(main_path + '/images/sapper_idle/agent1.png') -#empty space DEFAULT_FIELD = [ diff --git a/src/game_ui.py b/src/game_ui.py index 04dc057..e9b2aa9 100644 --- a/src/game_ui.py +++ b/src/game_ui.py @@ -1,6 +1,4 @@ import pygame as pg -import os -main_path = os.path.dirname(os.getcwd()) from agent import Agent from environment import Environment @@ -15,16 +13,16 @@ class GameUi: self.screen = pg.display.set_mode((WIDTH, HEIGHT)) def move(self): - coord = 'x' if self.agent.dir in (1, 3) else 'y' - shift = -1 if self.agent.dir in (2, 3) else 1 - # print(coord, shift) - test = int(getattr(self.agent, coord) + shift) + coord = 'x' if self.agent.direction in (1, 3) else 'y' + shift = -1 if self.agent.direction in (2, 3) else 1 + if coord == 'x': - if self.env.field[self.agent.y][test].number in (2, 3): + if self.env.field[self.agent.y][self.agent.x+shift].number in (2, 3): return elif coord == 'y': - if self.env.field[test][self.agent.x].number in (2, 3): + if self.env.field[self.agent.y+shift][self.agent.x].number in (2, 3): return + for x in range(8): setattr( self.agent, @@ -33,7 +31,7 @@ class GameUi: else int(getattr(self.agent, coord) + (shift/8)) ) self.update() - self.clock.tick(15) + self.clock.tick(20) self.update() def update(self): @@ -43,10 +41,7 @@ class GameUi: self.screen.blit(self.agent.img, (self.agent.x * 80, self.agent.y * 80)) pg.display.update() - def rotate(self, dir): - self.agent.dir = (self.agent.dir + dir) % 4 - #print(self.agent.dir) - self.agent.img = pg.image.load(SAPPER_IDLE[self.agent.dir]) + def rotate(self, direction: int): + self.agent.direction = (self.agent.direction + direction) % 4 + self.agent.img = SAPPER_IDLE[self.agent.direction] self.update() - -