[Python] Pyxel로 게임을 만드는 첫걸음.

입문


Pyxel은 Python을 위한 레트로 게임 엔진입니다.
쉽게 게임을 만들 수 있어서 예전에는 많이 했지만 요즘은 잘 안 부딪혀서 기억을 완전히 잃어버렸어요.
나는 오랜만에 놀아서 기억을 회복하고 싶다.
또한 상세하고 정확한 지식, 그리고 설치 방법 등은 아래의 링크를 보십시오.
https://github.com/kitao/pyxel/blob/master/README.ja.md

1 최소 코드


우선, 필요한 최소한의 코드는 대체로 다음과 같다.
# まずはpyxelをインポート
import pyxel

# ゲーム全体を表すクラスを作り、その中でゲームの内容を定義する
class App:
    def __init__(self):
        # 画面サイズ(幅w, 高さh)を指定する
        pyxel.init(100, 100)

        # とりあえず変数を作っておく
        # 今は特に意味はない
        self.x = 0

        # フレーム更新時に実行する更新関数と描画関数を登録する
        # 2つの関数が時間ごとに連続で実行されるイメージ
        pyxel.run(self.update, self.draw)

    def update(self):
        # 1フレームごとにxが1増えていく
        # 今は特に意味はない
        self.x += 1

    def draw(self):
        # 画面をクリアする色を指定する(0〜15)
        # 1フレームごとに画面が色0(=黒)でクリアされる
        # 今は特に意味はない
        pyxel.cls(0)

# クラスのインスタンスを生成、ゲームを開始
App()
코드에 대한 설명은 모두 설명에 나와 있습니다.
실행 결과는 이렇습니다. 지금은 칠흑 같은 화면만 표시됩니다.

그림 두 점 보이기


그러면 화면이 나오지만 여기서 그림은 움직일 수 없고 조작할 수 없고 게임이 될 수 없다는 것을 나타낸다.
우선 그림을 표시하는 곳부터 시작한다.
드로잉 디스플레이는 드로잉 함수draw에 설명되어 있습니다.
간단한 사각형을 만들어 보세요.
    def draw(self):
        pyxel.cls(0)

        # 四角形を描画、引数は(左上の点の座標x, y, 幅w, 高さh, 色)
        pyxel.rect(10, 10, 10, 10, 9)
(이전에 쓴 댓글 생략)
사각형의 왼쪽 위 구석에 있는 좌표와 너비, 높이 및 색상을 지정하여 사각형을 그립니다.
좌표는 화면의 왼쪽 위(0,0)이고 오른쪽으로 가면 x가 증가하고 아래로 가면 y가 증가하는 구조이다.
이 예에서 화면 사이즈는 100이다×100이니까.
왼쪽 위 (0,0) 오른쪽 위 (100,0)
왼쪽 아래 (0100) 오른쪽 아래 (100100)
그렇습니다.
실행 결과.

오른쪽으로 10, 아래로 10을 내려가면 너비 10, 높이 10, 색깔 9(= 주황색)의 사각형을 그릴 수 있다.

그림 세 폭


이어서 이 사각형을 움직여 보세요.
기본적으로 각 프레임은 변수를 변경하고 이 변수를 드로잉 함수의 매개변수에 적용합니다.
지금까지 사용되지 않았지만 업데이트 함수update에서 프레임당 1씩 증가하는 변수 x가 있습니다.나는 이것을 사각형의 매개 변수로 사용해 보았다.
    def draw(self):
        pyxel.cls(0)

        # 四角形を描画、引数は(左上の点の座標x, y, 幅w, 高さh, 色)
        # 変数xを幅に設定
        pyxel.rect(10, 10, self.x, 10, 9)
아마 사각형의 폭이 조금씩 늘어날 거예요.
실행 결과.

사각형의 너비를 하나씩 늘릴 수 있다.

4 작업


이동화일 뿐이야. 애니메이션일 뿐이야.유저의 조작을 화면에 반영하세요.
우선 키보드의 조작부터 시작한다.btn 함수는 지정한 키를 계속 누르는지 확인합니다.키의 종류는 KEY_○○ 와 같은 상수로 지정됩니다.
업데이트 함수update에서 변수 x가 1 증가합니다.키의 조작에 따라 이것을 바꾸자.
    def update(self):
        # 右キーを押している間はxが増える
        if(pyxel.btn(pyxel.KEY_RIGHT)):
            self.x += 1
        # 押していなければ1になる
        else:
            self.x = 1
이렇게 해서 키보드의 오른쪽이 눌리지 않으면 사각형의 너비는 1이다

오른쪽이 밀렸을 때 너비가 하나하나 길어졌다.

그리고 마우스의 동작을 반영합니다.
    def draw(self):
        pyxel.cls(0)

        pyxel.rect(10, 10, self.x, 10, 9)

        # マウスカーソルの座標を取得
        mx = pyxel.mouse_x
        my = pyxel.mouse_y

        # 新しく四角形を作成
        # 左上の座標をマウスカーソルの座標と一致させる
        pyxel.rect(mx, my, 5, 5, 6)
mouse_x, mouse_y 마우스 커서 좌표를 가져옵니다.
그리고 이 좌표를 새로 만든 사각형의 왼쪽 위에 있는 좌표에 맞춥니다.
이제 마우스 커서와 같은 위치에 사각형을 그릴 수 있습니다.

마우스를 움직이면 물색의 사각형이 형성된다.
키보드로 조작하면 침략자 게임, 워크맨, 마우스로 조작하면 블록을 파괴하는 물건을 만들 수 있다.

5 끝


전체 코드.간단하네.
import pyxel

class App:
    def __init__(self):
        pyxel.init(100, 100)

        self.x = 0

        pyxel.run(self.update, self.draw)

    def update(self):
        if(pyxel.btn(pyxel.KEY_RIGHT)):
            self.x += 1
        else:
            self.x = 1

    def draw(self):
        pyxel.cls(0)

        pyxel.rect(10, 10, self.x, 10, 9)

        mx = pyxel.mouse_x
        my = pyxel.mouse_y

        pyxel.rect(mx, my, 5, 5, 6)

App()
잠시 기억을 잃은 자신의 재활 훈련을 위해 기초 중의 기초를 써 보았다.
이번에는 안 썼지만 픽셀이 걸개그림을 덧붙인 편집이 큰 특징이다.이것을 능숙하게 사용하면 이번에 쓴 간단한 코드에 고기를 붙이면 그에 맞는 게임을 할 수 있다.
게임을 만드는 것은 재미있을 뿐만 아니라 판정, 중력, 상태 변수 등 프로그래밍에서 중요한 개념도 배울 수 있어 의미가 있다.앞으로도 조금씩 배워서 게임 같은 걸 만들고 싶어요.
(2020/12/19 추기) 코드가 지적되었다.댓글을 보세요.

좋은 웹페이지 즐겨찾기