Erba in cima
Fa parte della sezione Mondi del percorso Pygame di Coddy. Lezione 7 di 35.
Il terreno ha erba in superficie e terra sotto. Puoi distinguere l'una dall'altra sulla mappa: un # con un altro # sopra è sotto la superficie.
if row == 0 or LEVEL[row - 1][col] != "#":
image = grass_img
else:
image = dirt_img
tiles.append((image, pygame.Rect(x, y, TILE, TILE)))LEVEL[row - 1][col] è la casella sopra. La riga 0 ha bisogno di un controllo a parte: lì row - 1 è -1 e Python interpreta l'indice -1 come l'ultimo elemento di una lista, cioè la riga in basso. Senza row == 0, una casella nella riga in alto diventerebbe terra ovunque la riga in basso abbia un # sotto di essa.
Sfida
Facile- Carica
assets/images/grass.pngingrass_imgeassets/images/dirt.pngindirt_img. - Per ogni
#, scegligrass_imgquando si trova nella riga 0 o la casella sopra non è#, edirt_imgaltrimenti. - Inserisci l’immagine scelta in
tilesinvece che inblock_img.
Provalo tu
import pygame
TILE = 36
LEVEL = [
"###.............",
"###.............",
"..........C.....",
".........####...",
"..C.............",
".####......C....",
"..........###...",
"#....C.........#",
"###..##...###.##",
"######..########",
]
pygame.init()
screen = pygame.display.set_mode((576, 360))
pygame.display.set_caption("Tiles")
clock = pygame.time.Clock()
grass_img = pygame.image.load("assets/images/grass.png").convert_alpha()
dirt_img = pygame.image.load("assets/images/dirt.png").convert_alpha()
coin_img = pygame.image.load("assets/images/coin.png").convert_alpha()
tiles = []
for row, line in enumerate(LEVEL):
for col, char in enumerate(line):
x, y = col * TILE, row * TILE
if char == "#":
tiles.append((grass_img, pygame.Rect(x, y, TILE, TILE)))
elif char == "C":
tiles.append((coin_img, pygame.Rect(x, y, TILE, TILE)))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((140, 200, 240))
for image, rect in tiles:
screen.blit(image, rect)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tutte le lezioni di Mondi
1Mappe dal testo
Un livello in testoRighe e colonneLettere con significatoDove inizia il giocatoreUna schermata alla volta4Collisioni con le piattaforme
Muri a sinistra e a destraAtterrare sulle piattaformeBattere la testaCadere fuori dal livelloUn asse alla volta5Una telecamera a scorrimento
Un offset della telecameraSegui il giocatoreMantieni la telecamera all'internoParallasseEsercitati da solo: Playground Pygame