最近Twitterではあつ森が流行ってますね ゲームキューブ版はやってたなあ ゲーム始めちゃうと一日中やってしまうのであつ森は買わない!でも正直やりたい… 自分でゲーム作るならOKだよね?プログラミングだし!
ドットでかわいいゲームが作れるpyxel
pyxel公式ドキュメントが丁寧に書かれているので、つまずくことなくインストール完了 (pyenvを入れ直してpython3.8.2の環境にpyxelをインストール)
pyxelで使えるショートカットキーがあるのが親切
- スクリーンショット:
option+1
- ムービー(GIF):
option+2
で撮影開始〜option+3
で終了&GIF保存
ゲームキャラを作る
pyxelに搭載されているPyxel Editorでドット絵が描ける!
ターミナルでpyxeleditor ファイル名
を実行するとエディタが起動
(ファイル名は拡張子なしでコマンド実行しても自動でつけてくれてた)
このエディタでもスクリーンショットのショートカットキー使えた
背景を作る
背景はエディタの左上の□が4つある「タイルマップエディタ」で作れる 右下から背景にしたい画像を選択、左側でドラッグすると画像が貼り付けられる
ゲーム画面を表示する
こちらの記事をお手本にコーディングしました 【Pythonでゲームを作ろう!】レトロな2Dゲームを作ってみた!
コード一式はこちら
draw関数に画面に表示する処理を書く
blt()
でエディタで作成した画像を表示、bltm()
でタイルマップを表示する
エディタで作成した.pyxresファイルは1枚の画像なのでblt()
の第4、5引数に座標を指定して
プレイヤー、家など個々の画像を切り出して画面に表示する
※ 座標は2枚目のエディタ画面のように右側のサムネイルにカーソルを合わせると上部に表示される
def draw(self): """ 画面描画 """ # 背景 pyxel.cls(7) # bltm(x, y, tm, u, v, w, h, [colkey]) colkey指定なし pyxel.bltm(0, 0, 0, 0, 0, 16, 16) # プレイヤー描画 if self.player.active: # blt(x, y, img, u, v, w, h, [colkey]) colkey=5で藍色を透過 pyxel.blt(self.player.position[0], self.player.position[1], 0, 0, 0, 16, 16, 5) # 家描画 pyxel.blt(self.home.position[0], self.home.position[1], 0, 16, 0, 16, 16, 5) # うさぎ pyxel.blt(16, 24, 0, 48, 0, 16, 16, 5)
ゲームキャラを動かす
矢印キーで動くようにしました 「>0」とかは画面からはみ出ない制御です
class Player: """ プレイヤーのコントロール """ def __init__(self): self.active = True self.position = [48, 47] def action(self): """ プレイヤー移動 """ if pyxel.btnp(pyxel.KEY_LEFT) and self.position[0] > 0: self.position[0] -= 10 if pyxel.btnp(pyxel.KEY_RIGHT) and self.position[0] < 110: self.position[0] += 10 if pyxel.btnp(pyxel.KEY_UP) and self.position[1] > 0: self.position[1] -= 10 if pyxel.btnp(pyxel.KEY_DOWN) and self.position[1] < 110: self.position[1] += 10
超ロークオリティあつ森の完成
全然あつ森じゃない… 女の子が原っぱ駆け巡ってるだけだわ…