Dodanie wózka poruszającego się losowo.

This commit is contained in:
Dominik Jagosz 2022-03-08 23:00:29 +01:00
parent 3bbc35e1ac
commit 7818eb4095

102
main.py
View File

@ -1,26 +1,14 @@
import math
import os import os
import random import random
import pygame import pygame
FPS = 1 FPS = 60
SZEROKOSC_OKNA = 1280 SZEROKOSC_OKNA = 1280
WYSOKOSC_OKNA = 960 WYSOKOSC_OKNA = 960
LICZBA_POL_W_POZIOMIE = 8 BOK_AGENTA1 = 100
LICZBA_POL_W_PIONIE = 6
Krata = []
for rzad in range(LICZBA_POL_W_PIONIE):
Krata.append([])
for kolumna in range(LICZBA_POL_W_POZIOMIE):
Krata[rzad].append(random.randint(0, 9))
bok_pola = min(int(SZEROKOSC_OKNA / LICZBA_POL_W_POZIOMIE), int(WYSOKOSC_OKNA / LICZBA_POL_W_PIONIE))
odstep_miedzy_polami = max(1, math.floor(0.0625 * bok_pola))
bok_pola -= odstep_miedzy_polami
BIALY = (255, 255, 255) BIALY = (255, 255, 255)
JASNOSZARY1 = (180, 180, 180) JASNOSZARY1 = (180, 180, 180)
@ -30,61 +18,47 @@ pygame.display.set_caption("Okno1")
TEST1_IKONA = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'test1_ikona.png')), (500, 500)) 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)) TRAKTOR_IKONA = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'traktor_ikona.png')), (100, 100))
wozek_ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'wozek.png')), wozek_ikona = pygame.image.load(os.path.join('Ikony', 'wozek.png'))
(bok_pola - odstep_miedzy_polami, bok_pola - odstep_miedzy_polami))
wozek_ze_skrzynka_ikona = pygame.image.load(os.path.join('Ikony', 'wozek_ze_skrzynka.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))
def wyswietl_okno(): def wyswietl_okno(agent1_hitbox):
OKNO.fill(JASNOSZARY1) OKNO.fill(BIALY)
OKNO.blit(agent1, (agent1_hitbox.x, agent1_hitbox.y))
for rzad in range(LICZBA_POL_W_PIONIE): os = random.randint(0, 1)
for kolumna in range(LICZBA_POL_W_POZIOMIE): odleglosc = random.randint(20, 120)
pygame.draw.rect(OKNO, BIALY, [(odstep_miedzy_polami + bok_pola) * kolumna + odstep_miedzy_polami, znak = random.randint(0, 1)
(odstep_miedzy_polami + bok_pola) * rzad + odstep_miedzy_polami, if znak == 1:
bok_pola, bok_pola]) odleglosc = 0 - odleglosc
if os == 0:
if agent1_hitbox.x + odleglosc < SZEROKOSC_OKNA - agent1_hitbox.width and agent1_hitbox.x + odleglosc > 0:
agent1_hitbox.x += odleglosc
else:
if agent1_hitbox.y + odleglosc < WYSOKOSC_OKNA - agent1_hitbox.height and agent1_hitbox.y + odleglosc > 0:
agent1_hitbox.y += odleglosc
pygame.display.update() pygame.display.update()
def wyswietl_wozek(): def main():
for rzad in range(LICZBA_POL_W_PIONIE): klatkaz = pygame.time.Clock()
for kolumna in range(LICZBA_POL_W_POZIOMIE): agent1_hitbox = pygame.Rect(SZEROKOSC_OKNA / 2 - BOK_AGENTA1 / 2,
pom = Krata[rzad][kolumna] WYSOKOSC_OKNA / 2 - BOK_AGENTA1 / 2, BOK_AGENTA1,
if pom == 0: BOK_AGENTA1)
pom = wozek_ikona warunek_dzialania = True
elif pom == 1: while warunek_dzialania:
pom = wozek_ze_skrzynka_ikona klatkaz.tick(FPS)
elif pom == 2: for event in pygame.event.get():
pom = TRAKTOR_IKONA if event.type == pygame.QUIT:
else: warunek_dzialania = False
pom = None break
if pom != None:
pom = pygame.transform.scale(pom, (bok_pola - odstep_miedzy_polami, bok_pola - odstep_miedzy_polami)) wyswietl_okno(agent1_hitbox)
OKNO.blit(pom, ((( print(agent1_hitbox.x, agent1_hitbox.y)
odstep_miedzy_polami + bok_pola) * kolumna + odstep_miedzy_polami) + bok_pola / 2 - pom.get_width() / 2, # wyswietl_agenta1(agent1_hitbox)
((
odstep_miedzy_polami + bok_pola) * rzad + odstep_miedzy_polami) + bok_pola / 2 - pom.get_height() / 2)) pygame.quit()
pygame.display.update()
klatkaz = pygame.time.Clock() main()
warunek_dzialania = True
while warunek_dzialania:
klatkaz.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
warunek_dzialania = False
break
wyswietl_okno()
wyswietl_wozek()
pom = Krata[LICZBA_POL_W_PIONIE - 1][LICZBA_POL_W_POZIOMIE - 1]
for rzad in range(LICZBA_POL_W_PIONIE - 1, -1, -1):
for kolumna in range(LICZBA_POL_W_POZIOMIE - 1, 0, -1):
Krata[rzad][kolumna] = Krata[rzad][(kolumna - 1)]
Krata[rzad][0] = Krata[rzad - 1][LICZBA_POL_W_POZIOMIE - 1]
Krata[0][0] = pom
print(Krata)
pygame.quit()