Untitled
unknown
python
3 years ago
3.0 kB
5
Indexable
# PARKOUR
# 1. start i platforma
# 2. checkpoint -> jak umrzesz w grze / przegrasz --> odradzasz sie w poprzenim punktcie
# 3. zmienne potrzebne do ładowania etapów
# 4. funkcja na odradzanie sie w checkpoint
czyEtap1 = False # zmienna ładujaca etap 1 / zmieni sie kiedy osiagagne checkpoint
# system odrodzania i checkpointów
# checkpoint -> jak umrzesz w grze / przegrasz --> odradzasz sie w poprzenim punktcie
pozycjaOdrodzenia = player.position() # aktualna pozycja odrodzenia
# funkcja budujaca nowa platforme i schody do 1 etapu
def platforma():
# 1. Teleportuje konstruktor
builder.teleport_to(pos(5, 0, 0))
# 2. Obracam w strone EAST
builder.face(EAST)
# 3. Buduje schody uzywajac petli for
for i in range(70):
# 4. Umieszczam bloczek jako schodek
builder.place(PURPUR_STAIRS)
# 5. Poruszam konstruktor do przodu i w gore
builder.shift(1, 1, 0)
# 6. Oznaczam teren na checkpoint
builder.mark()
builder.shift(2, 0, -4)
# 7. Buduje checkpoint z DIAMOND_BLOCK
builder.fill(DIAMOND_BLOCK)
# 8. Przypisuje funkcje do czatu
player.on_chat("start",platforma)
# Checkpoint i odradzanie
# 1. Funkcja przypisana do zdarzenia na smierc gracza
def smierc():
# 1.1 Pauza 500ms
loops.pause(500)
# 1.2 Teleportacja gracza do pozycjaOdrodzenia
player.teleport(pozycjaOdrodzenia)
# 2. Przypisanie funkcji do zdarzenia smierci
player.on_died(smierc)
# Uruchomienie gry i checkpointów
# 1. Petla zawsze w czasie gry
while True:
# 2. Sprawdzam czy gracz wszedl na platforme i czyEtap1 jest false -> oznacza to że etap 1 nie był ładowany wcześniej
if blocks.test_for_block(DIAMOND_BLOCK, pos(0, -1, 0)) and not czyEtap1:
# 3. Aktualizacja pozycjaOdrodzenia
pozycjaOdrodzenia = player.position()
# 4. Zablokowanie ładowania etapu1 po raz kolejny
czyEtap1 = True
# 5. ładowanie etap1()
etap1i2(RIGHT_TURN, SLIME_BLOCK, GOLD_BLOCK)
# Funkcja budujaca etap 1 i 2 z parametrami obrotKonstruktora, rodzajToru, rodzajCheckpointu
def etap1i2(obrotKonstruktora, rodzajToru, rodzajCheckpointu):
# 1. Przesuniecie konstruktora pod checkpoint i zaznaczenie pozycji
builder.teleport_to(pos(1, -4, 0))
builder.mark()
builder.face(EAST)
# 2. Petla for dla 2 etapów toru
for i in range(2):
# 3. Petla for dla bloczkow etapu
for i in range(5):
# 4. Przesuwam konstruktor o losowe wartosci -> randint(3, 8)
builder.move(FORWARD, randint(3, 8))
# 5. Buduje platforme parkour
builder.line(rodzajToru)
# 6. Robie odstep parkur o losowa wartosc -> randint(2, 3)
builder.move(FORWARD, randint(2, 3))
# 7. Zaznaczam pozycje do kolejnej lini
builder.mark()
builder.turn(obrotKonstruktora)
# 8. Tworze nowa platforme
builder.mark()
builder.shift(2, 0, -4)
builder.fill(rodzajCheckpointu)
Editor is loading...