From 027e11157395d962c38119747fb7c6d40c95003e Mon Sep 17 00:00:00 2001 From: Dominik Jagosz Date: Wed, 9 Mar 2022 11:53:39 +0100 Subject: [PATCH] =?UTF-8?q?Poprawa=20p=C5=82ynno=C5=9Bci=20jazdy=20w=C3=B3?= =?UTF-8?q?zk=C3=B3w.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 101 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 68 insertions(+), 33 deletions(-) diff --git a/main.py b/main.py index 29baa93..4879199 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,18 @@ import os import random +from enum import Enum import pygame -FPS = 10 + +class KIERUNEK(Enum): + GORA = 0 + DOL = 1 + LEWO = 2 + PRAWO = 3 + + +FPS = 120 SZEROKOSC_OKNA = 1280 WYSOKOSC_OKNA = 960 @@ -12,6 +21,7 @@ BOK_AGENTA1 = 100 BIALY = (255, 255, 255) JASNOSZARY1 = (180, 180, 180) +ZIELONY1 = (26, 122, 26) OKNO = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA)) pygame.display.set_caption("Okno1") @@ -22,33 +32,58 @@ 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)) -lista_agentow = [] -lista_hitboxow_agentow = [] +Agenci = [] +HitboxyAgentow = [] +DrogiAgentow = [] +KierunkiAgentow = [] def wyswietl_okno(): - OKNO.fill(JASNOSZARY1) - for a in range(len(lista_agentow)): - OKNO.blit(lista_agentow[a], (lista_hitboxow_agentow[a].x, lista_hitboxow_agentow[a].y)) - os = random.randint(0, 1) - odleglosc = random.randint(20, 100) - znak = random.randint(0, 1) - if znak == 1: - odleglosc = 0 - odleglosc - if os == 0: - if SZEROKOSC_OKNA - lista_hitboxow_agentow[a].width > lista_hitboxow_agentow[a].x + odleglosc > 0: - lista_hitboxow_agentow[a].x += odleglosc - else: - if WYSOKOSC_OKNA - lista_hitboxow_agentow[a].height > lista_hitboxow_agentow[a].y + odleglosc > 0: - lista_hitboxow_agentow[a].y += odleglosc + 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 pygame.display.update() def main(): klatkaz = pygame.time.Clock() - agent1_hitbox = pygame.Rect(SZEROKOSC_OKNA / 2 - BOK_AGENTA1 / 2, - WYSOKOSC_OKNA / 2 - BOK_AGENTA1 / 2, BOK_AGENTA1, - BOK_AGENTA1) warunek_dzialania = True while warunek_dzialania: klatkaz.tick(FPS) @@ -58,23 +93,23 @@ def main(): break wyswietl_okno() - print(agent1_hitbox.x, agent1_hitbox.y) - # wyswietl_agenta1(agent1_hitbox) - los = random.randint(1, 30) - if len(lista_agentow) < 30: + los = random.randint(1, 240) + if len(Agenci) < 50: pom = None - if los == 1: - pom = 'wozek_ze_skrzynka.png' - elif los == 2: + if los in (1, 2) or len(Agenci) == 0: pom = 'wozek.png' - elif los == 3 and len(lista_agentow) > 6: + elif los in (2, 3): + pom = 'wozek_ze_skrzynka.png' + elif los == 4 and len(Agenci) > 6: pom = 'traktor_ikona.png' if pom != None: - lista_agentow.append(pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)), - (BOK_AGENTA1, BOK_AGENTA1))) - lista_hitboxow_agentow.append(pygame.Rect(random.randint(0, SZEROKOSC_OKNA - BOK_AGENTA1), - random.randint(0, WYSOKOSC_OKNA - BOK_AGENTA1), BOK_AGENTA1, - BOK_AGENTA1)) + 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) pygame.quit()