diff --git a/__pycache__/game.cpython-37.pyc b/__pycache__/game.cpython-37.pyc index 734e0fb..d5f3549 100644 Binary files a/__pycache__/game.cpython-37.pyc and b/__pycache__/game.cpython-37.pyc differ diff --git a/__pycache__/modele.cpython-37.pyc b/__pycache__/modele.cpython-37.pyc index 69fa141..87d6367 100644 Binary files a/__pycache__/modele.cpython-37.pyc and b/__pycache__/modele.cpython-37.pyc differ diff --git a/game.py b/game.py index 499b49c..c688314 100644 --- a/game.py +++ b/game.py @@ -1,3 +1,8 @@ +# TODO: sledzenie pozycji smieciarki +# TODO: pole na ktorym wypisywane beda informacje +# TODO: obsluga kolizji + + import pygame import modele import numpy as np @@ -25,32 +30,37 @@ ILOSC_KOLUMN = 15 WINDOW_SIZE = [980, 980] # Tworzenie planszy i kratek -plansza = np.array([[modele.Kratka(j, i, 0) for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)]) +plansza = np.array([[modele.Kratka(j, i) for i in range(ILOSC_KOLUMN)] for j in range(ILOSC_WIERSZY)]) # smieciarka smieciarka = modele.Smieciarka(10, 10) -plansza[10, 10] = smieciarka +plansza[10, 10].setJestSmieciarka(True) # kontenery kontener_plastik = modele.Kontener(0, 0) kontener_plastik.setImage(pygame.image.load("resources/pojemnik_plastik.png")) -plansza[0, 0] = kontener_plastik +plansza[0, 0].setJestKontenerem(True) kontener_metal = modele.Kontener(0, 4) kontener_metal.setImage(pygame.image.load("resources/pojemnik_metal.png")) -plansza[0, 4] = kontener_metal +plansza[0, 4].setJestKontenerem(True) kontener_organiczne = modele.Kontener(2, 2) kontener_organiczne.setImage(pygame.image.load("resources/pojemnik_organiczne.png")) -plansza[2, 2] = kontener_organiczne +plansza[2, 2].setJestKontenerem(True) kontener_papier = modele.Kontener(4, 0) kontener_papier.setImage(pygame.image.load("resources/pojemnik_papier.png")) -plansza[4, 0] = kontener_papier +plansza[4, 0].setJestKontenerem(True) kontener_szklo = modele.Kontener(4, 4) kontener_szklo.setImage(pygame.image.load("resources/pojemnik_szklo.png")) -plansza[4, 4] = kontener_szklo +plansza[4, 4].setJestKontenerem(True) + +# ustawienie wysypiska, rozmiar wysypiska 5x5 +for i in range(5): + for j in range(5): + plansza[i, j].setJestWysypiskiem(True) all_sprites_list = pygame.sprite.Group() all_sprites_list.add(kontener_plastik, kontener_metal, kontener_organiczne, kontener_papier, kontener_szklo, @@ -74,6 +84,7 @@ def game(): # -------- Main Program Loop ----------- while not done: + # obsluga zdarzen typu nacisniecie klawisza lub przycisku myszy for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked close @@ -87,6 +98,8 @@ def game(): wiersz = pozycja_myszki[1] // (HEIGHT + MARGIN) print("Click ", pozycja_myszki, "Grid coordinates: ", wiersz, kolumna) + plansza[wiersz,kolumna].setKolor(BLUE) + elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: smieciarka.w_lewo() @@ -97,28 +110,26 @@ def game(): if event.key == pygame.K_DOWN: smieciarka.w_dol() - # Set the screen background - obraz.fill(BLACK) - - # rysowanie planszy - # for wiersz in range(ILOSC_WIERSZY): - # for kolumna in range(ILOSC_KOLUMN): - # kolor = GREY - # pygame.draw.rect(obraz, - # kolor, - # [(MARGIN + WIDTH) * kolumna + MARGIN, - # (MARGIN + HEIGHT) * wiersz + MARGIN, - # WIDTH, - # HEIGHT]) - #obraz.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) - all_sprites_list.draw(obraz) - # Limit to 60 frames per second clock.tick(60) + # czarny kolor w tle + obraz.fill(BLACK) + + # rysowanie planszy # + for i in range(ILOSC_WIERSZY): + for j in range(ILOSC_KOLUMN): + pygame.draw.rect(obraz, + plansza[i, j].kolor, + [(MARGIN + WIDTH) * plansza[i, j].pozY + MARGIN, + (MARGIN + HEIGHT) * plansza[i, j].pozX + MARGIN, + WIDTH, + HEIGHT]) + + obraz.blit(pygame.image.load("resources/wysypisko.jpg"), (5, 5)) + all_sprites_list.draw(obraz) + # Go ahead and update the screen with what we've drawn. pygame.display.flip() - # Be IDLE friendly. If you forget this line, the program will 'hang' - # on exit. pygame.quit() diff --git a/modele.py b/modele.py index bc37cb7..70b1090 100644 --- a/modele.py +++ b/modele.py @@ -7,6 +7,13 @@ HEIGHT = 60 # This sets the margin between each cell MARGIN = 5 +# kolory +BLACK = (0, 0, 0) +WHITE = (255, 255, 255) +GREEN = (0, 255, 0) +RED = (255, 0, 0) +BLUE = (0, 0, 255) +GREY = (128, 128, 128) class Smieciarka(pygame.sprite.Sprite): def __init__(self, x, y): @@ -53,23 +60,36 @@ class Kontener(pygame.sprite.Sprite): self.image = pygame.image.__class__ self.rect = pygame.Rect(self.x * WIDTH + MARGIN * self.x + MARGIN, self.y * HEIGHT + MARGIN * self.y + MARGIN, WIDTH, HEIGHT) - def setImage(self,image): + + def setImage(self, image): self.image = image class Kratka(pygame.sprite.Sprite): - def __init__(self, poz_x, poz_y, nr_obiektu): + def __init__(self, poz_x, poz_y): self.pozX = poz_x self.pozY = poz_y - # 0 - nieprzypisany; 1 - smieciarka; 2 - kontener; 3 - wysypisko - self.rodzaj_przypisanego_obiektu = nr_obiektu + self.jestSmieciarka = False + self.jestKontenerem = False + self.jestWysypiskiem = False + self.kolor = GREY pygame.sprite.Sprite.__init__(self) self.image = pygame.image.__class__ - self.rect = pygame.Rect(self.pozX * WIDTH + MARGIN * self.pozX + MARGIN, self.pozY * HEIGHT + MARGIN * self.pozY + MARGIN, + self.rect = pygame.Rect(self.pozX * WIDTH + MARGIN * self.pozX + MARGIN, + self.pozY * HEIGHT + MARGIN * self.pozY + MARGIN, WIDTH, HEIGHT) def setImage(self, image): self.image = image - def setRodzajObiektu(self,rodzaj): - self.rodzaj_przypisanego_obiektu = rodzaj \ No newline at end of file + def setJestSmieciarka(self, bool): + self.jestSmieciarka = bool + + def setJestKontenerem(self, bool): + self.jestKontenerem = bool + + def setJestWysypiskiem(self, bool): + self.jestWysypiskiem = bool + + def setKolor(self,kolor): + self.kolor = kolor \ No newline at end of file