Untitled

 avatar
unknown
python
2 years ago
4.9 kB
5
Indexable
# 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(30):
        # 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
czyEtap2 = False
czyEtap3 = 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, 4))
            # 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)

# Petla zawsze while True:
while True:
    # Sprawdzam czy gracz jest na platformie i moze zaczac budowayc etap1i2 if blocks.test_for_block(DIAMOND_BLOCK, pos(0,-1,0)) and not czyEtap1:
    if blocks.test_for_block(DIAMOND_BLOCK, pos(0,-1,0)) and not czyEtap1:
        # Aktualizuje pozycje gracza do checkpointu aktualnaPozycjaGracza = player.position()
        aktualnaPozycjaGracza = player.position()
        # Wylaczam budowanie etapu 1 czyEtap1 = True
        czyEtap1 = True
        # Buduje etap 1 -> etap1i2(RIGHT_TURN, SLIME_BLOCK, GOLD_BLOCK)
        etap1i2(TurnDirection.RIGHT, SLIME_BLOCK, GOLD_BLOCK)
    # Sprawdzic czy gracz jest na platformie
    elif blocks.test_for_block(GOLD_BLOCK, pos(0, -1, 0)) and not czyEtap2:
        # 1. Aktualizuje pozycje gracza do checkpointu aktualnaPozycjaGracza = player.position()
        aktualnaPozycjaGracza = player.position()
        # 2. # Wylaczam budowanie etapu 2 czyEtap2 = True + stworzyc zmienna czyEtap2
        czyEtap2 = False
        # 3. # Buduje etap 2 -> etap1i2(RIGHT_TURN, MAGENTA_STAINED_GLASS, BEDROCK)
        etap1i2(RIGHT_TURN, MAGENTA_STAINED_GLASS, BEDROCK)
    elif blocks.test_for_block(BEDROCK,pos(0,-1,0)) and not czyEtap3:
        # 1. Aktualizuje pozycje gracza do checkpointu aktualnaPozycjaGracza = player.position()
        aktualnaPozycjaGracza = player.position()
        # 2. # Wylaczam budowanie etapu 2 czyEtap2 = True + stworzyc zmienna czyEtap2
        czyEtap3 = False
        # 3. # Buduje etap 2 -> etap1i2(RIGHT_TURN, MAGENTA_STAINED_GLASS, BEDROCK)
        etap3()
# 1. Stworz funkcje -> def etap3():
def etap3():
    # 2. Tworze kule ze szlamu -> shapes.sphere(SLIME_BLOCK, pos(4, -30, 0), 1, ShapeOperation.REPLACE)
    # 3. Przeteleportuj builder obok kuli -> builder.teleport_to(pos(6, -32, 0))
    # 4. Zaznacz pozycje builderem -> builder.mark()
    # 5. Ustaw builder na Wschod -> builder.place(EAST)
    # 6. zapisz pozycje kuli -> builder.set_origin()
    # 7. rusz konstruktor -> builder.move(FORWARD, 65)
    # 8. ułóż linie z netheru -> builder.line(NETHERRACK)
    # 9. #wracamy aby dodać ogień -> builder.teleport_to_origin()
    # 10. Podnies bloczek na ogien -> builder.move(UP, 1)
    # 11. Petla for na losowy ogien -> for i in range(11):
    # 12. TAB -> rusz do przodu -> builder.move(FORWARD, randint(3, 8))
    # 13. TAB -> położ ogień -> builder.place(FIRE)
    # 14. Buduj platforme -> 
    # 15. builder.mark()
    # 16. builder.shift(2, 0, -4)
    # 17. builder.fill(MOSS_STONE)

Editor is loading...