Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
5.4 kB
7
Indexable
Never
# PRZYPOMNIENIE 
# CO TO SĄ PARAMETRY FUNKCJI?
# JAK TWORZYMY FUNCKJE?
# def nazwaFunkcji(x, y, z):
# TAB -> WSZYSTKO CO W FUNKCJI PISZEMY PO PRZYNAJMNIEJ 1 TABULACJI(TAB)
# PETLA FOR?
# POWTARZA OPERACJE OKRESLONA ILOSC RAZY W FUNKCJI RANGE():
# (TAB)WSZYSTKO CO W PETLI ODDZIELONE JEST KOLEJNA TABULACJA 

# def nazwaFunkcji(parametrFunkcji,parametrFunkcji1,parametrFunkcji2):
# WSZYSTKO W SRODKU PO (TAB)

# petla powatarzajaca 10 razy 
# for i in range(10):
# WSZYSTKO W SRODKU PO (TAB)

# ZADANKO ROZGRZEWKOWE
# NAPISZ FUNKCJE KTORA PO SPRAWDZENIU LICZBY/PARAMETRU ODPOWIEDNIO PRZYWITA SIE NA CZACIE
# 1. definicja funkcji powitanie z parametrem- liczbaLogowan 
def powitanie(liczbaLogowan):
    # 2. sprawdzenie liczby 
    if liczbaLogowan == 0:
        # 3. wyswietlenie powitania na czacie 
        player.say("WITAJ W SWIECIE! ZAPRASZAMY DO ZABAWY Z NAMI!!!")
    else:
        # 3. wyswietlenie powitania na czacie
        player.say("WITAJ! MIŁEJ ZABAWY!!!")
# 4. podpiac funkcje do czatu 
player.on_chat("powitanie", powitanie)


# 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)

# 1. Kod odpowiedzialny za ładowanie poszczegolnych etapow i rozpoczynaniu kolejnych 
# 1. Petla ktora wykonuje sie przez caly czas dzialania programu 
while True:
    # 2. Sprawdzic czy rozpocznynam etap nadepnieciem na bloczek pos(0, -1, 0)
    if blocks.test_for_block(SEA_LANTERN, pos(0, -1, 0)):
        # Kod uruchamiajacy etap 1 i operacje z tym związane 
        # 1. Pobranie aktualanej pozycji
        pozycja = player.position()
        # 2. Wczytanie pozycji z -> jak daleko jest gracz w tunelu
        z = pozycja.get_value(Axis.Z)
        # 3. uruchomienie etapu1(z) -> nowa funkcja o nazwie etap1(z)
        etap1(z) 
        # 4. Pauza na załadowanie loops.pause(3000)
        loops.pause(3000)
    elif blocks.test_for_block(GOLD_BLOCK, pos(0, -1, 0)):
        # Kod uruchamiajacy etap 1 i operacje z tym związane
        # 1. Pobranie aktualanej pozycji
        pozycja = player.position()
        # 2. Wczytanie pozycji z -> jak daleko jest gracz w tunelu
        z = pozycja.get_value(Axis.Z)
        # 3. uruchomienie etapu1(z) -> nowa funkcja o nazwie etap1(z)
        etap2(z)
        # 4. Pauza na załadowanie loops.pause(3000)
        loops.pause(3000)
    elif blocks.test_for_block(GLASS, pos(0, -1, 0)):
        # Kod uruchamiajacy etap 1 i operacje z tym związane
        # 1. Pobranie aktualanej pozycji
        pozycja = player.position()
        # 2. Wczytanie pozycji z -> jak daleko jest gracz w tunelu
        z = pozycja.get_value(Axis.Z)
        # 3. uruchomienie etapu1(z) -> nowa funkcja o nazwie etap1(z)
        etap3(z)
        # 4. Pauza na załadowanie loops.pause(3000)
        loops.pause(3000)
    
def etap1(z):
    player.say("!!!    ETAP 1 START    !!!")
    # 1. Po wejsciu na start etapu zamieniam podloge 
    blocks.fill(BEDROCK, world(x - 10, y - 1, z - 5), world(x + 10, y - 1, z + 5))
    # 2. Dodaje przegrode za graczem 
    blocks.fill(BEDROCK, world(x - 10, y, z - 5), world(x + 10, y + 10, z - 3))
    # 3. Buduje kolejna linie na koncu etapu 
    blocks.fill(GOLD_BLOCK, world(x - 9, y - 1, z + 25), world(x + 9, y - 1, z + 27))
    # 4. buduje przeszkody na ten etap
    blocks.fill(IRON_BARS, world(x - 9, y - 1, z + 3), world(x + 9, y - 1, z + 20))
    blocks.fill(LAVA, world(x - 9, y - 2, z + 3), world(x + 9, y - 2, z + 20))
    # 4.1 Zawsze w etapie ... -> while True:
    while True: 
    # 4.2 sprawdzam czy gracz gra w etapie bo przechodzi przez kratki
        if blocks.test_for_block(IRON_BARS, pos(0, -1, 0)):
        # 4.3 daje mu siekierke na start
            mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_AXE, 1)
            # 4.4 spawnuje creepery 
            for i in range(10):
                mobs.spawn(CREEPER, randpos(world(x - 9, y + 1, z + 3), world(x + 9, y + 3, z + 20)))
            # aby zatrzymac petle uzywam break 
            break

def etap2(z):
    player.say("!!!    ETAP 2 START    !!!")
    # 0. Budowa segmentu etapu 2 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)
    # 1. Po wejsciu na start etapu zamieniam podloge
    blocks.fill(BEDROCK, world(x - 10, y - 1, z - 5), world(x + 10, y - 1, z + 5))
    # 2. Dodaje przegrode za graczem
    blocks.fill(BEDROCK, world(x - 10, y, z - 5), world(x + 10, y + 10, z - 3))
    # 3. Buduje kolejna linie na koncu etapu
    blocks.fill(GLASS, world(x - 9, y - 1, z + 25), world(x + 9, y - 1, z + 27))
    # 4. Przeszkody etapu 2
    for i in range(20):
        mobs.spawn(ZOMBIE, randpos(world(x - 9, y + 2, z + 3), world(x + 9, y + 2, z + 20)))

def etap3(z):
    player.say("!!!    ETAP 3 START    !!!")