Merge remote-tracking branch 'origin/development'

# Conflicts:
#	environment.md
This commit is contained in:
Marcin Kostrzewski 2020-04-06 12:37:01 +02:00
commit 748e317e2e
6 changed files with 16 additions and 18 deletions

5
Run.py
View File

@ -1,3 +1,6 @@
from pathlib import Path
from src.game.Game import Game
game = Game()
programPath = Path(".").resolve()
game = Game(programPath)

BIN
data/structure.pdf Normal file

Binary file not shown.

View File

@ -1,17 +1,15 @@
# Środowisko agenta
**Skład zespołu:** *Marcin Kostrzewski,* *Mateusz Tylka,* *Michał Czekański,* *Jonathan Spaczyński*
**Wybrany temat:** *Inteligentny Survival (temat własny)*
**Wykorzystana technologia:** *Pygame*
**Wykorzystana technologia:** *Pygame*
## Koncepcja
* *Środowiskiem naszego agenta jest bezludna wyspa*
* *Celem naszego agenta jest przetrwanie*
* *Na wyspie znajdują się różnorodne elementy, które pomagają lub przeszkadzają przetrwać*
* *Agent ma zasoby, które musi uzupełniać aby przeżyć, np. głód*
* *Agent porusza się w środowisku 20x20*
*
## Struktura projektu
*Plik przedstawiający strukturę katalogów oraz klas:* [structure.pdf](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/data/structure.pdf)
## Główne klasy projektu
* [Run.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/Run.py) - plik, względem którego uruchamia się całe środowisko.
* [Game.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/game/Game.py) -
@ -25,10 +23,8 @@ klasa realizacyjna, w niej wywoływane są wszystkie inne główne obiekty, obs
* [Entity.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/entities/Entity.py) - przedstawia jednostki występujące na mapie, które w jakiś sposób zachodzą ze sobą w interakcje.
* [Player.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/entities/Player.py) - tworzy agenta, którym na daną chwilę możemy się poruszać i zachodzić w interakcje z innymi jednostkami.
* [Statistics.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/entities/Statistics.py) - reprezentuje zasoby agenta, które odpowiednio zwiększają się, lub zmniejszają po interakcji z jakimś elementem.
*
## Reprezentacja wiedzy
*Wiedzą w naszym projekcie są statystyki agenta, które mowią o tym w jakim stanie toczy się proces przetrwania.
Posiadamy również konsolę, która wypisuje wartości statystyk na ekranie.*
![screenshot](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/master/data/images/adventure.png)
Posiadamy również konsolę, która wypisuje wartości statystyk na ekranie.*
## Uruchomienie projektu

View File

@ -24,12 +24,12 @@ class Entity(pygame.sprite.Sprite):
texturesFolder = ""
textureFile = ""
try:
texturesFolder = Path("../data/images/entities")
texturesFolder = Path("./data/images/entities")
textureFile = texturesFolder / textureName
except IOError:
print("Cannot load texture from " + texturesFolder + ". Exiting...")
exit(1)
image = pygame.image.load(str(textureFile)).convert_alpha()
image = pygame.image.load(str(textureFile.resolve())).convert_alpha()
image = pygame.transform.scale(image, (tileSize, tileSize))
rect = image.get_rect()
return image, rect

View File

@ -12,12 +12,12 @@ from src.game.Timer import Timer
class Game:
def __init__(self):
def __init__(self, filesPath):
self.running = True
print("Loading configuration...", end=" ")
try:
configFolder = Path("../data/config/")
configFolder = Path(str(filesPath) + "/data/config/")
configFile = configFolder / "mainConfig.json"
self.config = json.loads(configFile.read_text())
@ -47,8 +47,8 @@ class Game:
self.screen = Screen(self, self.config["window"])
print("OK")
self.mapDataFolder = path.dirname("../data/mapdata/")
self.map = Map(path.join(self.mapDataFolder, 'map.txt'), self.screen)
mapFile = Path(str(filesPath) + "/data/mapdata/")
self.map = Map(path.join(mapFile, 'map.txt'), self.screen)
self.player = Player((6, 2), self.map.tileSize)
self.map.addEntity(self.player)
self.eventManager = EventManager(self, self.player)

View File

@ -1,14 +1,13 @@
from pathlib import Path
import pygame
import os
from os import path
class TerrainTile(pygame.sprite.Sprite):
def __init__(self, x, y, texture, tileSize):
super().__init__()
self.imagesFolder = path.dirname("../data/images/")
self.terrainFolder = path.join(self.imagesFolder, 'terrain')
self.image = pygame.image.load(os.path.join(self.terrainFolder, texture)).convert()
terrainTexturesPath = Path("./data/images/terrain").resolve()
self.image = pygame.image.load(str(terrainTexturesPath / texture)).convert()
self.image = pygame.transform.scale(self.image, (tileSize, tileSize))
self.rect = self.image.get_rect()
self.x = x