前回(何だこれは - とりあたまの日々)のドット絵で響やキャロルを描けなかった私はとうとうノイズで何か作ることにした。
そして、出来上がったのがこれになる。何となく形にはなったが、やはりノイズが異様である。動きがおかしい。
以下の実装でノイズが歩行する描写ができた。歩行の速さは適当に調整した。クリックするとゲームクリアとなる。
from enum import Enum, auto
from collections import deque, namedtuple
import pyxel
WINDOW_H = 120
WINDOW_W = 160
class GAMEMODE(Enum):
Title = auto()
Noise = auto()
class App:
def __init__(self):
pyxel.init(WINDOW_W, WINDOW_H, caption="noise", fps=12)
pyxel.load("assets\walk.pyxres")
self.my_gamemode = GAMEMODE.Title
self.IMG_ID0 = 0
self.x = 0
self.y = 56
self.vx = 1
self.pos = -32
self.exists = True
pyxel.run(self.update, self.draw)
def update(self):
if self.my_gamemode == GAMEMODE.Title:
self.update_title()
elif self.my_gamemode == GAMEMODE.Noise:
self.update_noise()
pyxel.mouse(True)
def update_title(self):
if pyxel.btnp(pyxel.KEY_SPACE):
self.my_gamemode = GAMEMODE.Noise
def update_noise(self):
if pyxel.btnp(pyxel.MOUSE_LEFT_BUTTON):
left = self.x
top = self.y
right = self.x + 32
bottom = self.y + 32
if left <= pyxel.mouse_x <= right:
if top <= pyxel.mouse_y <= bottom:
self.exists = False
if self.exists == False:
return
self.x += self.vx
if self.x < 0:
self.x = 0
self.vx *= -1
self.pos = -32
if self.x > pyxel.width - 32:
self.x = pyxel.width -32
self.vx *= -1
self.pos = 32
def draw(self):
pyxel.cls(0)
if self.my_gamemode == GAMEMODE.Title:
self.draw_title()
elif self.my_gamemode == GAMEMODE.Noise:
self.draw_noise()
def draw_title(self):
pyxel.text(52, 50, "WALK ONLY NOISE", 7)
pyxel.text(60, 60, "PUSH, SPACE", 7)
def draw_noise(self):
if self.exists == False:
pyxel.text(60, 50, "GAME CLEAR", 7)
return
pyxel.text(60, 20, "CLICK NOISE!", 7)
pyxel.blt(self.x, self.y, self.IMG_ID0, 0, 32*(pyxel.frame_count % 4), self.pos, 32, 7)
pyxel.bltm(0, 88, 0, 0, 0, 24, 16)
App()
いろいろと参考にした結果、歩くだけとなった。まだ1体をクリックするだけなので、もっとゲーム性を増したいと思う。
先日、シンフォギアのアプリゲームが「魔法少女リリカルなのは Detonation」とコラボしたみたいだが、プレイしないまま終わってしまった。