Üstteki Çimen
Coddy'nin Pygame Journey'sinin Dünyalar bölümünün bir parçası. Ders 7 / 35.
Zeminin üst yüzeyinde çimen, altında ise toprak vardır. Haritadan hangisinin hangisi olduğunu anlayabilirsin: Üzerinde başka bir # bulunan bir #, yüzeyin altındadır.
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], üstteki döşemedir. 0. satır için ayrı bir denetim gerekir: burada row - 1 değeri -1 olur ve Python, -1 dizinini listenin son öğesi, yani en alt satır olarak okur. row == 0 olmadan, üst satırdaki bir döşeme, alt satırın altında bir # bulunan her yerde toprağa dönüşür.
Görev
Kolayassets/images/grass.pngdosyasınıgrass_imgiçine veassets/images/dirt.pngdosyasınıdirt_imgiçine yükle.- Her
#için, 0. satırdaysa veya üstündeki karo#değilsegrass_imgseç; aksi hâldedirt_imgseç. - Seçilen görseli
block_imgyerinetilesiçine koy.
Kendin dene
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()
Dünyalar bölümündeki tüm dersler
1Metinden Haritalar
Metinde Bir SeviyeSatırlar ve SütunlarAnlam Taşıyan HarflerOyuncunun Başladığı YerHer Seferinde Bir Ekran3Yerçekimi ve Zıplama
Yerçekimiyle DüşmeYerden ZıplamaKısa SıçrayışlarEn Yüksek Düşme HızıZıplama Tamponu6Devriye Gezen Düşmanlar
Devriye Gezen Bir BlobÜzerine Bas ya da Darbe AlYürüme DöngüsüHaritadaki DüşmanlarKendi başına pratik yap: Pygame playground