pyxel로 클릭 게임 만들기
readme의 샘플을 수정하는 형식으로 클릭 게임을 제작했습니다.
install
linux 버전이 개발 중이기 때문에 Mac에 설치되었습니다brew install python3 glfw
pip3 install pyxel
샘플을 설치하여 테스트할 수도 있다cd ~/src
install_pyxel_examples
cd pyxel_examples
python3 01_hello_pyxel.py
base
처음에는 정사각형만 옆으로 움직였다.
brew install python3 glfw
pip3 install pyxel
cd ~/src
install_pyxel_examples
cd pyxel_examples
python3 01_hello_pyxel.py
처음에는 정사각형만 옆으로 움직였다.
import pyxel
class App:
def __init__(self):
pyxel.init(160, 120)
self.x = 0
pyxel.run(self.update, self.draw)
def update(self):
self.x = (self.x + 1) % pyxel.width
def draw(self):
pyxel.cls(0)
pyxel.rect(self.x, 0, self.x + 7, 7, 9)
App()
만들어진 물건
이동할 색상, 크기가 다른 정사각형을 클릭하여 삭제하는 게임
QuickTimePlayer+Gifted로 gif를 만들었는데 종횡비는 이상해졌어요 orz.
code import pyxel
import random
SQUARE_INITIAL_COUNT = 10
SCREEN_WIDTH = 120
SCREEN_HEIGHT = 160
class Square:
def __init__(self):
self.size = random.randint(8, 16)
self.x = random.randint(0, SCREEN_WIDTH)
self.y = random.randint(0, SCREEN_HEIGHT)
self.x2 = self.x + self.size
self.y2 = self.y + self.size
self.color = random.randint(1,15)
self.is_alive = True
def update(self):
self.x = (self.x + 0.5) % SCREEN_WIDTH
self.y = (self.y + 0.5) % SCREEN_HEIGHT
if self.y2 >= SCREEN_HEIGHT -10:
self.y = 0
self.x2 = self.x + self.size
self.y2 = self.y + self.size
if self.clicked() == True:
self.remove()
def clicked(self):
if pyxel.mouse_x < self.x or pyxel.mouse_x > self.x2:
return False
if pyxel.mouse_y < self.y or pyxel.mouse_y > self.y2:
return False
return True
def remove(self):
if pyxel.btnp(pyxel.MOUSE_LEFT_BUTTON):
self.is_alive = False
def colorChange(self):
if pyxel.btnp(pyxel.MOUSE_LEFT_BUTTON):
self.color = random.randint(1,15)
class App:
def __init__(self):
pyxel.init(SCREEN_WIDTH, SCREEN_HEIGHT)
pyxel.mouse(True)
self.squares = [Square() for _ in range(SQUARE_INITIAL_COUNT)]
pyxel.run(self.update, self.draw)
def update(self):
if pyxel.btnp(pyxel.KEY_Q):
pyxel.quit()
for index, square in enumerate(self.squares):
square.update()
if not square.is_alive:
del self.squares[index]
def draw(self):
pyxel.cls(0)
for square in self.squares:
pyxel.rectb(square.x, square.y, square.x2, square.y2, square.color)
# text表示 todo: 関数にしたい
color = 3
if len(self.squares) == 0:
text = "Clear!"
color = pyxel.frame_count % 15 + 1
else:
text = "counter: " + str(len(self.squares))
return pyxel.text(0, SCREEN_HEIGHT -7, text, color)
App()
kitao/pyxel - GitHub
Reference
이 문제에 관하여(pyxel로 클릭 게임 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/th_/items/ef099b57550628b621b2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import pyxel
import random
SQUARE_INITIAL_COUNT = 10
SCREEN_WIDTH = 120
SCREEN_HEIGHT = 160
class Square:
def __init__(self):
self.size = random.randint(8, 16)
self.x = random.randint(0, SCREEN_WIDTH)
self.y = random.randint(0, SCREEN_HEIGHT)
self.x2 = self.x + self.size
self.y2 = self.y + self.size
self.color = random.randint(1,15)
self.is_alive = True
def update(self):
self.x = (self.x + 0.5) % SCREEN_WIDTH
self.y = (self.y + 0.5) % SCREEN_HEIGHT
if self.y2 >= SCREEN_HEIGHT -10:
self.y = 0
self.x2 = self.x + self.size
self.y2 = self.y + self.size
if self.clicked() == True:
self.remove()
def clicked(self):
if pyxel.mouse_x < self.x or pyxel.mouse_x > self.x2:
return False
if pyxel.mouse_y < self.y or pyxel.mouse_y > self.y2:
return False
return True
def remove(self):
if pyxel.btnp(pyxel.MOUSE_LEFT_BUTTON):
self.is_alive = False
def colorChange(self):
if pyxel.btnp(pyxel.MOUSE_LEFT_BUTTON):
self.color = random.randint(1,15)
class App:
def __init__(self):
pyxel.init(SCREEN_WIDTH, SCREEN_HEIGHT)
pyxel.mouse(True)
self.squares = [Square() for _ in range(SQUARE_INITIAL_COUNT)]
pyxel.run(self.update, self.draw)
def update(self):
if pyxel.btnp(pyxel.KEY_Q):
pyxel.quit()
for index, square in enumerate(self.squares):
square.update()
if not square.is_alive:
del self.squares[index]
def draw(self):
pyxel.cls(0)
for square in self.squares:
pyxel.rectb(square.x, square.y, square.x2, square.y2, square.color)
# text表示 todo: 関数にしたい
color = 3
if len(self.squares) == 0:
text = "Clear!"
color = pyxel.frame_count % 15 + 1
else:
text = "counter: " + str(len(self.squares))
return pyxel.text(0, SCREEN_HEIGHT -7, text, color)
App()
kitao/pyxel - GitHub
Reference
이 문제에 관하여(pyxel로 클릭 게임 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/th_/items/ef099b57550628b621b2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)