Traktowanie wozków jako obiektów. Stworzenie klasy Agent1, wydzielenie jej do osobnego pliku. Wydzielenie stałych do osobnego pliku.
This commit is contained in:
parent
027e111573
commit
e7d28ad14a
58
agenci.py
Normal file
58
agenci.py
Normal file
@ -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
|
117
main.py
117
main.py
@ -1,87 +1,45 @@
|
|||||||
import os
|
import os
|
||||||
import random
|
|
||||||
from enum import Enum
|
|
||||||
|
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
|
from agenci import *
|
||||||
class KIERUNEK(Enum):
|
from stale import *
|
||||||
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)
|
|
||||||
|
|
||||||
OKNO = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA))
|
OKNO = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA))
|
||||||
pygame.display.set_caption("Okno1")
|
pygame.display.set_caption("Okno1")
|
||||||
|
|
||||||
TEST1_IKONA = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', 'test1_ikona.png')), (500, 500))
|
Agenci1 = []
|
||||||
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 = []
|
|
||||||
|
|
||||||
|
|
||||||
def wyswietl_okno():
|
def wyswietl_okno():
|
||||||
OKNO.fill(ZIELONY1)
|
OKNO.fill(JASNOSZARY1)
|
||||||
KROK_WOZKA = 2
|
for a in Agenci1:
|
||||||
for a in range(len(Agenci)):
|
OKNO.blit(a.tekstura, (a.hitbox.x, a.hitbox.y))
|
||||||
OKNO.blit(Agenci[a], (HitboxyAgentow[a].x, HitboxyAgentow[a].y))
|
if a.droga == 0:
|
||||||
if DrogiAgentow[a] == 0:
|
a.obierzNowyKierunek()
|
||||||
KierunkiAgentow[a] = KIERUNEK(random.randint(0, 3))
|
a.ruszSie()
|
||||||
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()
|
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():
|
def main():
|
||||||
klatkaz = pygame.time.Clock()
|
klatkaz = pygame.time.Clock()
|
||||||
warunek_dzialania = True
|
warunek_dzialania = True
|
||||||
@ -93,25 +51,10 @@ def main():
|
|||||||
break
|
break
|
||||||
|
|
||||||
wyswietl_okno()
|
wyswietl_okno()
|
||||||
los = random.randint(1, 240)
|
dodaj_agenta1()
|
||||||
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)
|
|
||||||
|
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
pygame.quit()
|
||||||
|
Loading…
Reference in New Issue
Block a user