Zbuduj jaskinie
Część sekcji Światy ścieżki Pygame w Coddy. Lekcja 28 z 35.
Moss Caves to platformówka stworzona przez ciebie: biegnij przez omszałą jaskinię, zbieraj monety, przeskakuj kolce i przepaście, rozdeptuj gluty, znajdź klucz, otwórz drzwi i dotrzyj do flagi. Każdy krok dodaje jedną część, zbudowaną z tego, co utworzyłeś w tej sekcji.
Cały poziom to mapa w kodzie startowym, szeroka na 64 kolumny. # to ziemia, P to miejsce startu, a pozostałe litery oznaczają elementy, które dodasz: C to monety, ^ to kolce, E to gluty, K to klucz, D to drzwi, F to flaga. Dopóki dany krok nie odczyta litery, jej pole pozostaje puste.
Najpierw zbuduj ziemię. Jedno przejście po mapie wypełnia walls obiektami Rect do obsługi kolizji, a tiles parami (image, Rect) do rysowania, wybierając trawę, ziemię lub kafelek krawędzi za pomocą solid(), tak jak w rozdziale Tiles:
rect = pygame.Rect(col * TILE, row * TILE, TILE, TILE)
if char == "#":
# wybierz obraz za pomocą solid(), tak jak wcześniej
walls.append(rect)
tiles.append((image, rect))
elif char == "P":
start = rect.midbottomGracz stoi na start — na środku dolnej krawędzi pola P.
Wyzwanie
Średni- Przed pętlą gry utwórz
wallsitiles, a następnie przejdź przez mapę. Dla każdego#wybierzdirt_img,grass_left_img,grass_right_imglubgrass_imgza pomocąsolid(), tak jak w lekcji „Krawędzie kafelków”, i dodaj Rect dowalls, a parę dotiles. - Dla
Pustawstartnamidbottomkafelka. - Utwórz
player = player_img.get_rect(midbottom=start). - W pętli gry, po narysowaniu tła, narysuj każdy kafelek w jego Rect, a następnie gracza.
Spróbuj swoich sił
import pygame
TILE = 36
WIDTH, HEIGHT = 576, 360
LEVEL = [
"................................................................",
"................................................................",
"................................................................",
"................................................................",
"#..............................................................#",
"#....................C.........................#####...........#",
"#......CC...C................CC.....CC.........#####.....CC....#",
"#....................#.........................D...............#",
"#.P.........#...E....#...^.......K......E......D.C....^......F.#",
"#######..####################..##########################..#####",
]
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Moss Caves")
clock = pygame.time.Clock()
def load(name):
return pygame.image.load("assets/images/" + name).convert_alpha()
background = pygame.image.load("assets/backgrounds/forest.png").convert_alpha()
grass_img = load("grass.png")
grass_left_img = load("grass_left.png")
grass_right_img = load("grass_right.png")
dirt_img = load("dirt.png")
player_img = load("player.png")
def solid(row, col):
if row < 0 or row >= len(LEVEL) or col < 0 or col >= len(LEVEL[0]):
return False
return LEVEL[row][col] == "#"
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
for y in range(0, HEIGHT, 72):
for x in range(0, WIDTH, 72):
screen.blit(background, (x, y))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Światy
1Mapy z tekstu
Poziom w tekścieWiersze i kolumnyLitery ze znaczeniemGdzie zaczyna graczJeden ekran naraz4Kolizje z platformami
Ściany z lewej i prawejLądowanie na platformachUderz głowąWypadanie poza poziomJedna oś naraz7Jaskinie Mchowe
Zbuduj jaskinieBiegaj i skaczPoćwicz samodzielnie: Edytor online Pygame