Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
3.1 kB
1
Indexable
Never
# PRZYPOMNIENIE 
# FUNKCJE 
# JAK TWORZE? -> def nazwaFunkcji():
# PARAMETRY FUNKCJI -> zmienne przekazane do funkcji 
# JAK TOWRZE -> def nazwaFunkcji(paramter1,paramter2,...):

# INSTRUKCJE WARUNKOWE 
# PRZYKŁAD
powitaniePrzywitanie = "Witaj na świecie! To twoje pierwsze logowanie! Zacznij grać z nami!"
powitaniePonowne = "Witaj ponownie! Świat czeka na Ciebie!!!"

def powitanie(liczbaLogowan):
    # Instrukcja warunkowa sprawdzajaca jakie powitanie wyswietlic 
    if liczbaLogowan == 1:
        player.say(powitaniePrzywitanie)
    else:
        player.say(powitaniePonowne)

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

def etap1(z):
    player.say("ŁADUJE ETAP 1")
    # 1. Budowa kolejnego segmentu 
    # 1.1 -> wyczyscic linie bloczkow po zaladowaniu etapu 
    blocks.fill(BEDROCK, world(x - 10, y - 1, z - 5), world(x + 10, y - 1, z + 5))
    # 1.2 -> dodac przegrode za graczem wysoka na 10 bloczkow do sufitu 
    blocks.fill(BEDROCK, world(x - 10, y - 1, z - 5), world(x + 10, y + 10, z - 3))
    # 1.3 -> dodac linie na koncu etapu do ladowania kolejnego poziomu 
    blocks.fill(GOLD_BLOCK, world(x - 10, y - 1, z + 25), world(x + 10, y - 1, z + 27))
    # 2. Przeszkody 1 etapu
    # 2.1 -> przeszkody z iron bars 
    blocks.fill(IRON_BARS, world(x - 9, y - 1, z + 3), world(x + 9, y - 1, z + 20))
    # 2.2 => Lawa pod iron_bars  
    blocks.fill(LAVA, world(x - 9, y - 2, z + 3), world(x + 9, y - 2, z + 20))
    # 2.3 -> Sprawdzenie czy jest na kratkach -> sprawdzenie zawsze w etap1
    while True: 
        if blocks.test_for_block(IRON_BARS, pos(0, -1, 0)):
            #daje 1 siekeirke i do boju 
            mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_AXE, 1)
            # spawn creeper w petli 
            for i in range(10):
                mobs.spawn(CREEPER, randpos(world(x - 9, y + 1, z + 3), world(x + 9, y + 1, z + 20)))
            # slowko break opusci petle while po wykonaniu petli for 
            break






# kod odpowiedzialny za ladowanie wszystkich etapow
while True:
    #sprawdzam etap po rodzaju bloczku na jakim staje gracz
    if blocks.test_for_block(SEA_LANTERN, pos(0, -1, 0)):
        # ladowanie 1 etapu
        player.say("ETAP 1! START!!!")
        pozycja=player.position()
        z=pozycja.get_value(Axis.Z)
        etap1(z)
        loops.pause(3000)