Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
2.4 kB
6
Indexable
Never
# 1. Funkcja do wybudowania platformy i schodków na góre 
# 2. Funkcja i system checkpointów w grze 
# 3. Funkcja budująca etap 1 i 2 

def parkour():
    # 1.1 Teleportacja konstruktor do gracza 
    builder.teleport_to(pos(5,0,0))
    # 1.2 Obrot konstruktora 
    builder.face(EAST)
    # 1.3 Petla for do budownia schodow 
    for i in range(70):
        # 1.4 W SRODKU PETLI klade schodek builder.place()
        builder.place(PURPUR_STAIRS)
        # 1.5 W SRODKU PETLI przesuwam konstruktor 
        builder.shift(1,1,0)
    # 1.6 Zaznaczam pozycje konstruktora 
    builder.mark()
    # 1.7 Przesuwam konstruktor 
    builder.shift(2,0,-4)
    # 1.8 Wypelnij zaznaczona przestrzen bloczkami
    builder.fill(DIAMOND_BLOCK) 
# 1.9 POZA FUNKCJA Przypisanie funkcji parkour do czatu 
player.on_chat("start", parkour)

# CHECKPOINT 
# zmienna przechowujaca aktualna pozycje gracza aktualnaPozycjaGracza = player.position()
aktualnaPozycjaGracza = player.position()
# zmienna sprawdzajaca kolejny etap => czyEtap1 = False
czyEtap1 = False
# Funkcja Smierc ktora teleportuje gracza do poprzedniej zapisanej aktualnaPozycjaGracza
def smierc():
    player.teleport(aktualnaPozycjaGracza)
# Przypisanie funkcji Smierc do zdarzenia smierci gracza
player.on_died(smierc)

# Funkcja budująca etap 1 i 2 def etap1i2(obrotKonstruktora, rodzajToru, rodzajCheckpoint):
def etap1i2(obrotKonstruktora, rodzajToru, rodzajCheckpoint):
    # Teleport konstruktora pod platforme 
    builder.teleport_to(pos(1, -4, 0))
    # Zaznacz pozycje konsturktorem 
    builder.mark()
    # Obroc konstruktor na Wschod 
    builder.face(EAST)
    # Petla dla 1 etapu 
    for i in range(2):
        # Petla dla platform w etapie 
        for i in range(5):
            # Przesuwamy konstruktor o losowa wartosc 
            builder.move(FORWARD, randint(3, 8))
            # Tworzymy linie z danego bloku 
            builder.line(rodzajToru)
            # Przesuwamy konstruktor w celu zrobienia przerwy pomiędzy blokami 
            builder.move(FORWARD, randint(2, 3))
            # oznaczamy aktualną pozycję żeby to odniej budowała się kolejna linia 
            builder.mark()
        # obrót konstruktora na koniec 1 etapu 
        builder.turn(obrotKonstruktora)
    # tworzymy nową platformę
    builder.mark()
    builder.shift(2, 0, -4)
    builder.fill(rodzajCheckpoint)