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()
コメント