2種類あります。
最初はリストを使わないプログラム、2つ目は2次元リストを使ったプログラムです。
実行イメージ

screen_blit_meiro.py
# Pygame Zero: screen.blitで迷路を描画する import pgzrun # 画面サイズ WIDTH = 640 HEIGHT = 512 TITLE = "screen.blitで迷路を描画する" # プレイヤーを生成 player = Actor("kero") player.topleft = 1*64, 1*64 # 描画処理 def draw(): # 周りの壁と壁以外を描画 for y in range(8): for x in range(10): # ウインドウの周りだけ壁を描画 if x == 0 or x == 9 or y == 0 or y == 7: screen.blit("kabe", (x*64, y*64)) else: screen.blit("no_kabe", (x*64, y*64)) # 迷路部分の壁を描画 meiro() # プレイヤーを描画 player.draw() def meiro(): y = 2 screen.blit("kabe", (1*64 ,y*64)) screen.blit("kabe", (2*64 ,y*64)) x = 4 screen.blit("kabe", (x*64 ,1*64)) screen.blit("kabe", (x*64 ,2*64)) screen.blit("kabe", (x*64 ,3*64)) y = 4 screen.blit("kabe", (2*64 ,y*64)) screen.blit("kabe", (3*64 ,y*64)) screen.blit("kabe", (4*64 ,y*64)) y = 5 screen.blit("kabe", (2*64 ,y*64)) y = 6 screen.blit("kabe", (4*64 ,y*64)) y = 2 screen.blit("kabe", (6*64 ,y*64)) screen.blit("kabe", (7*64 ,y*64)) screen.blit("kabe", (8*64 ,y*64)) x = 6 screen.blit("kabe", (x*64 ,4*64)) screen.blit("kabe", (x*64 ,5*64)) screen.blit("kabe", (x*64 ,6*64)) x = 7 screen.blit("kabe", (x*64 ,4*64)) screen.blit("kabe", (x*64 ,5*64)) screen.blit("kabe", (x*64 ,6*64)) # ゲームスタート pgzrun.go()
screen_blit_meiro_list.py
# Pygame Zero: 2次元リストで迷路を描画する import pgzrun # 画面サイズ WIDTH = 640 HEIGHT = 512 TITLE = "2次元リストで迷路を描画する" # プレイヤーを生成 player = Actor("kero") player.topleft = 1*64, 1*64 # 迷路データ meiro = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 1, 0, 0, 1, 0, 0, 0, 1], [1, 0, 0, 0, 1, 1, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 1, 0, 1], [1, 0, 0, 0, 1, 0, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ] # 描画処理 def draw(): # 迷路を描画 for y in range(8): for x in range(10): if meiro[y][x] == 1: screen.blit("kabe", (x*64, y*64)) else: screen.blit("no_kabe", (x*64, y*64)) # プレイヤーを描画 player.draw() # ゲームスタート pgzrun.go()
コメント