From e7d28ad14aafc45a1eeee8ef48d0bb41dd73fa01 Mon Sep 17 00:00:00 2001 From: Dominik Jagosz Date: Wed, 9 Mar 2022 12:27:02 +0100 Subject: [PATCH] =?UTF-8?q?Traktowanie=20wozk=C3=B3w=20jako=20obiekt=C3=B3?= =?UTF-8?q?w.=20Stworzenie=20klasy=20Agent1,=20wydzielenie=20jej=20do=20os?= =?UTF-8?q?obnego=20pliku.=20Wydzielenie=20sta=C5=82ych=20do=20osobnego=20?= =?UTF-8?q?pliku.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agenci.py | 58 +++++++++++++++++++++++++++ main.py | 117 ++++++++++++++---------------------------------------- stale.py | 11 +++++ 3 files changed, 99 insertions(+), 87 deletions(-) create mode 100644 agenci.py create mode 100644 stale.py diff --git a/agenci.py b/agenci.py new file mode 100644 index 0000000..31150ba --- /dev/null +++ b/agenci.py @@ -0,0 +1,58 @@ +import random +from enum import Enum + +from stale import * + + +class KIERUNEK(Enum): + GORA = 0 + DOL = 1 + LEWO = 2 + PRAWO = 3 + + +class Agent1: + def __init__(self, hitbox, tekstura, kierunek, droga): + self.hitbox = hitbox + self.tekstura = tekstura + self.kierunek = kierunek + self.droga = droga + + def obierzNowyKierunek(self): + self.kierunek = KIERUNEK(random.randint(0, 3)) + losowa_droga = None + if self.kierunek == KIERUNEK.GORA: + losowa_droga = random.randint(0, self.hitbox.y) + elif self.kierunek == KIERUNEK.DOL: + losowa_droga = random.randint(0, WYSOKOSC_OKNA - self.hitbox.y) + elif self.kierunek == KIERUNEK.LEWO: + losowa_droga = random.randint(0, self.hitbox.x) + elif self.kierunek == KIERUNEK.PRAWO: + losowa_droga = random.randint(0, SZEROKOSC_OKNA - self.hitbox.x) + self.droga = losowa_droga - losowa_droga % KROK_AGENTA1 + + def ruszSie(self): + if self.kierunek == KIERUNEK.GORA: + if self.hitbox.y - KROK_AGENTA1 > 0: + self.hitbox.y -= KROK_AGENTA1 + self.droga -= KROK_AGENTA1 + else: + self.droga = 0 + elif self.kierunek == KIERUNEK.DOL: + if self.hitbox.y + KROK_AGENTA1 < WYSOKOSC_OKNA - self.hitbox.height: + self.hitbox.y += KROK_AGENTA1 + self.droga -= KROK_AGENTA1 + else: + self.droga = 0 + elif self.kierunek == KIERUNEK.LEWO: + if self.hitbox.x - KROK_AGENTA1 > 0: + self.hitbox.x -= KROK_AGENTA1 + self.droga -= KROK_AGENTA1 + else: + self.droga = 0 + elif self.kierunek == KIERUNEK.PRAWO: + if self.hitbox.x + KROK_AGENTA1 < SZEROKOSC_OKNA - self.hitbox.width: + self.hitbox.x += KROK_AGENTA1 + self.droga -= KROK_AGENTA1 + else: + self.droga = 0 diff --git a/main.py b/main.py index 4879199..b032476 100644 --- a/main.py +++ b/main.py @@ -1,87 +1,45 @@ import os -import random -from enum import Enum import pygame - -class KIERUNEK(Enum): - GORA = 0 - DOL = 1 - LEWO = 2 - PRAWO = 3 - - -FPS = 120 - -SZEROKOSC_OKNA = 1280 -WYSOKOSC_OKNA = 960 - -BOK_AGENTA1 = 100 - -BIALY = (255, 255, 255) -JASNOSZARY1 = (180, 180, 180) -ZIELONY1 = (26, 122, 26) +from agenci import * +from stale import * OKNO = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA)) pygame.display.set_caption("Okno1") -TEST1_IKONA = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'test1_ikona.png')), (500, 500)) -TRAKTOR_IKONA = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'traktor_ikona.png')), (100, 100)) -wozek_ikona = pygame.image.load(os.path.join('Ikony', 'wozek.png')) -wozek_ze_skrzynka_ikona = pygame.image.load(os.path.join('Ikony', 'wozek_ze_skrzynka.png')) -agent1 = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'wozek_ze_skrzynka.png')), - (BOK_AGENTA1, BOK_AGENTA1)) -Agenci = [] -HitboxyAgentow = [] -DrogiAgentow = [] -KierunkiAgentow = [] +Agenci1 = [] def wyswietl_okno(): - OKNO.fill(ZIELONY1) - KROK_WOZKA = 2 - for a in range(len(Agenci)): - OKNO.blit(Agenci[a], (HitboxyAgentow[a].x, HitboxyAgentow[a].y)) - if DrogiAgentow[a] == 0: - KierunkiAgentow[a] = KIERUNEK(random.randint(0, 3)) - losowa_droga = None - if KierunkiAgentow[a] == KIERUNEK.GORA: - losowa_droga = random.randint(0, HitboxyAgentow[a].y) - elif KierunkiAgentow[a] == KIERUNEK.DOL: - losowa_droga = random.randint(0, WYSOKOSC_OKNA - HitboxyAgentow[a].y) - elif KierunkiAgentow[a] == KIERUNEK.LEWO: - losowa_droga = random.randint(0, HitboxyAgentow[a].x) - elif KierunkiAgentow[a] == KIERUNEK.PRAWO: - losowa_droga = random.randint(0, SZEROKOSC_OKNA - HitboxyAgentow[a].x) - DrogiAgentow[a] = losowa_droga - losowa_droga % KROK_WOZKA - if KierunkiAgentow[a] == KIERUNEK.GORA: - if HitboxyAgentow[a].y - KROK_WOZKA > 0: - HitboxyAgentow[a].y -= KROK_WOZKA - DrogiAgentow[a] -= KROK_WOZKA - else: - DrogiAgentow[a] = 0 - elif KierunkiAgentow[a] == KIERUNEK.DOL: - if HitboxyAgentow[a].y + KROK_WOZKA < WYSOKOSC_OKNA - HitboxyAgentow[a].height: - HitboxyAgentow[a].y += KROK_WOZKA - DrogiAgentow[a] -= KROK_WOZKA - else: - DrogiAgentow[a] = 0 - elif KierunkiAgentow[a] == KIERUNEK.LEWO: - if HitboxyAgentow[a].x - KROK_WOZKA > 0: - HitboxyAgentow[a].x -= KROK_WOZKA - DrogiAgentow[a] -= KROK_WOZKA - else: - DrogiAgentow[a] = 0 - elif KierunkiAgentow[a] == KIERUNEK.PRAWO: - if HitboxyAgentow[a].x + KROK_WOZKA < SZEROKOSC_OKNA - HitboxyAgentow[a].width: - HitboxyAgentow[a].x += KROK_WOZKA - DrogiAgentow[a] -= KROK_WOZKA - else: - DrogiAgentow[a] = 0 + OKNO.fill(JASNOSZARY1) + for a in Agenci1: + OKNO.blit(a.tekstura, (a.hitbox.x, a.hitbox.y)) + if a.droga == 0: + a.obierzNowyKierunek() + a.ruszSie() pygame.display.update() +def dodaj_agenta1(): + los = random.randint(1, 240) + if len(Agenci1) < 50: + pom = None + if los in (1, 2) or len(Agenci1) == 0: + pom = 'wozek.png' + elif los in (2, 3): + pom = 'wozek_ze_skrzynka.png' + elif los == 4 and len(Agenci1) > 6: + pom = 'traktor_ikona.png' + if pom != None: + hitbox = pygame.Rect(random.randint(0, SZEROKOSC_OKNA - BOK_AGENTA1), + random.randint(0, WYSOKOSC_OKNA - BOK_AGENTA1), BOK_AGENTA1, + BOK_AGENTA1) + ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)), + (BOK_AGENTA1, BOK_AGENTA1)) + Agenci1.append(Agent1(hitbox, ikona, KIERUNEK.GORA, 0)) + + def main(): klatkaz = pygame.time.Clock() warunek_dzialania = True @@ -93,25 +51,10 @@ def main(): break wyswietl_okno() - los = random.randint(1, 240) - if len(Agenci) < 50: - pom = None - if los in (1, 2) or len(Agenci) == 0: - pom = 'wozek.png' - elif los in (2, 3): - pom = 'wozek_ze_skrzynka.png' - elif los == 4 and len(Agenci) > 6: - pom = 'traktor_ikona.png' - if pom != None: - Agenci.append(pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)), - (BOK_AGENTA1, BOK_AGENTA1))) - HitboxyAgentow.append(pygame.Rect(random.randint(0, SZEROKOSC_OKNA - BOK_AGENTA1), - random.randint(0, WYSOKOSC_OKNA - BOK_AGENTA1), BOK_AGENTA1, - BOK_AGENTA1)) - DrogiAgentow.append(0) - KierunkiAgentow.append(KIERUNEK.GORA) + dodaj_agenta1() pygame.quit() main() +pygame.quit() diff --git a/stale.py b/stale.py new file mode 100644 index 0000000..832bf93 --- /dev/null +++ b/stale.py @@ -0,0 +1,11 @@ +FPS = 120 +KROK_AGENTA1 = 2 + +SZEROKOSC_OKNA = 1280 +WYSOKOSC_OKNA = 960 + +BOK_AGENTA1 = 100 + +BIALY = (255, 255, 255) +JASNOSZARY1 = (200, 200, 200) +ZIELONY1 = (26, 122, 26)