Bangun Gua
Termasuk bagian Dunia Game dalam perjalanan Pygame di Coddy. Pelajaran 28 dari 35.
Moss Caves adalah game platformer milikmu sendiri: berlari melewati gua berlumut, mengumpulkan koin, melompati paku dan lubang, menginjak blob, menemukan kunci, membuka pintu, lalu mencapai bendera. Setiap langkah menambahkan satu bagian, yang dibangun dari hasil kerjamu di bagian ini.
Seluruh level adalah peta di starter, dengan lebar 64 kolom. # adalah tanah, P adalah titik awal, dan huruf lainnya adalah hal-hal yang akan kamu tambahkan: C koin, ^ paku, E blob, K kunci, D pintu, F bendera. Sebelum suatu langkah membaca sebuah huruf, ubinnya tetap kosong.
Pertama, bangun tanahnya. Satu kali penelusuran pada peta mengisi walls dengan Rect untuk tabrakan dan tiles dengan pasangan (image, Rect) untuk menggambar, memilih rumput, tanah, atau ubin tepi dengan solid(), seperti di bab Tiles:
rect = pygame.Rect(col * TILE, row * TILE, TILE, TILE)
if char == "#":
# pilih image dengan solid(), seperti sebelumnya
walls.append(rect)
tiles.append((image, rect))
elif char == "P":
start = rect.midbottomPemain berdiri di start, titik tengah bawah ubin P.
Tantangan
Sedang- Sebelum perulangan game, buat
wallsdantiles, lalu telusuri peta. Untuk setiap#, pilihdirt_img,grass_left_img,grass_right_imgataugrass_imgmenggunakansolid()seperti pada Edge Tiles, lalu tambahkan Rect kewallsdan pasangannya ketiles. - Untuk
P, tetapkanstartkemidbottomtile. - Buat
player = player_img.get_rect(midbottom=start). - Dalam perulangan game, setelah background, blit setiap tile pada Rect-nya, lalu player.
Coba sendiri
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()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dunia Game
1Peta dari Teks
Level dalam TeksBaris dan KolomHuruf yang Memiliki MaknaTempat Pemain MemulaiSatu Layar Setiap KaliLatihan sendiri: Playground Pygame