Untitled

mail@pastecode.io avatar
unknown
python
a year ago
3.3 kB
5
Indexable
Never
# po uruchomieniu programu pobieramy współrzędne gracza które
#będą wykorzystane w całym projekcie, będziemy jedynie aktualizować współrzędną "z" gracza żeby odpowiednio dobudowywać etapy
pozycja=player.position()
x=pozycja.get_value(Axis.X)
y=pozycja.get_value(Axis.Y)
z=pozycja.get_value(Axis.Z)

#funkcja ta przygotowuje pierwszy segment toru
def tor():
    
    #Tworzymy bryłe toru ze skały macierzystej
    blocks.fill(BEDROCK, world(x-10,y-1,z-2),world(x+10,y+10,z+35),FillOperation.HOLLOW)
    #pierwsza linia uruchamiająca etap 1
    blocks.fill(SEA_LANTERN, world(x-9,y-1,z+3),world(x+9,y-1,z+5))
    #gameplay.set_game_mode(SURVIVAL, mobs.target(NEAREST_PLAYER))
   
player.on_chat("start", tor)

# petla odpowiedzialna za dzialanie toru przeszkod
while True: # petla 'zawsze'
    if blocks.test_for_block(SEA_LANTERN, pos(0, -1, 0)): # instrukcja warunkowa
        # wykonanie instrukcji jesli warunek jest spelniony 'prawda'/True
        position = player.position() # zmienna pozycji gracza 
        z = position.get_value(Axis.Z) # wczytuje zmienna z zeby wiedziec gdzie jest gracz 
        etap1(z) # funkcja ladujaca etap 1
        loops.pause(1000)
    elif blocks.test_for_block(GOLD_BLOCK, pos(0, -1, 0)): # instrukcja warunkowa
        # wykonanie instrukcji jesli warunek jest spelniony 'prawda'/True
        position = player.position() # zmienna pozycji gracza
        z = position.get_value(Axis.Z) # wczytuje zmienna z zeby wiedziec gdzie jest gracz
        etap2(z) # funkcja ladujaca etap 2
        loops.pause(1000)

def etap2(z):
    player.say('ETAP 2 START!!!')
    # 1. Tworzymy bryłe toru ze skały macierzystej
    blocks.fill(BEDROCK, world(x-10,y-1,z-2), world(x+10,y+10,z+35), FillOperation.HOLLOW)
    # 2. Wyczyszczenie poziomej linii która załadowała bieżący etap
    blocks.fill(BEDROCK, world(x-9, y-1, z-5), world(x+9, y-1, z+5))
    # 3. Dodanie przegrody za graczem
    blocks.fill(BEDROCK, world(x-9, y-1, z-5), world(x+9, y+10, z-1))
    # 4. Dodanie kolejnej linii ładującej następny level
    blocks.fill(GLASS, world(x-9, y-1, z+25), world(x+9, y-1, z+27))
    #desz zombie
    while True:
        mobs.spawn(ZOMBIE, randpos(world(x-9, y+2, z+3), world(x+9, y+3, z+22)))
        loops.pause(500) # pauza po kazdym zombie

def etap1(z):
    player.say('ETAP 1 START!!!')
    # 2. Wyczyszczenie poziomej linii która załadowała bieżący etap
    blocks.fill(BEDROCK, world(x-9, y-1, z-5), world(x+9, y-1, z+5))
    # 3. Dodanie przegrody za graczem
    blocks.fill(BEDROCK, world(x-9, y-1, z-5), world(x+9, y+10, z-1))
    # 4. Dodanie kolejnej linii ładującej następny level
    blocks.fill(GOLD_BLOCK, world(x-9, y-1, z+25), world(x+9, y-1, z+27))
    # 5. Zaprojektowanie przeszkody na danym etapie
    # IRON BARS
    blocks.fill(IRON_BARS, world(x-9, y-1, z+3), world(x+9, y-1, z+22))
    # LAVA POD IRON BARS
    blocks.fill(LAVA, world(x-9, y-2, z+3), world(x+9, y-2, z+22))
    mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_SWORD, 1) # daje graczowi miecz
    while True: 
        if blocks.test_for_block(IRON_BARS, pos(0, -1, 0)): # sprawdzam czy przechodzi poziom
            for i in range(6):
                mobs.spawn(CREEPER, randpos(world(x-9, y, z+3), world(x+9, y+2, z+22)))