mimatik / shadowkeep

Python course - game dev
0 stars 0 forks source link

class Game #8

Closed x0nix closed 1 day ago

x0nix commented 2 days ago

Vytvoříme novou class Game a její instanci (game).

Měla by zastřešovat celou hru, vytvořila by všechny navázané objekty (player, map, window, etc. ) a měla by je jako atributy a zároveň je propojovala.

Abychom se nedostali do pekla, kdy každý objekt musí dostávat jako parametr vazbu na (skoro) každý jiný.

Nějak takhle:

# game.py

from shadowkeep.player import Player
...

class Game:
    def __init__(self):
        self.window = ...
        self.player = Player(self)
        self.map = Map(self)
        self.monsters = []

    def blit_all(self):
        ...

# player.py
 class Player:
     def __init__(self, game):
         self.game = game

     def move(self):
         ...
         if self.game.map.is_free(new_coords):
             self.x, self.y = new_coords

# main.py
game = Game()
game.run() # nebo nějak podobně ...
x0nix commented 1 day ago

fixed