※この記事はREADMEの内容を日本語で書いたものです。
はじめに
以前公開したこちらの記事の手順を半自動化したので、紹介します。「半」自動化とした理由は、手順通りにユーザーに操作してもらう必要がある点と、複雑なプログラムだと、ソースコードの置換が、モジュールの機能のみでは、十分に行われない場合があるためです。(具体的にはlambdaを使ってwhileループを含む関数を呼び出す場合など)そもそもは手動で全てをやらなければならないわけなので、複雑なゲームの場合も、使わないよりマシではあります。
準備
ファイル関係
名前は何でもいいのでプロジェクト用のフォルダを作りましょう。そして、その中に必要なファイルを入れます。その際に、メインファイルをmain.py
にすることと、main.py
のなかで、最初に呼び出されるmain関数を作っておくことだけ注意してください。メインのファイル以外には、特に制限はありません。以下は一例です。
import pygame, sys
import module
pygame.init()
screen = pygame.display.set_mode((512, 512))
pygame.display.set_caption('template')
clock = pygame.time.Clock()
class Class:
def __init__(self):
pass
def loop(self):
while True:
break
instance = Class()
def loop():
while True:
break
def main():
color = 0
while True:
screen.fill((color, color, color))
color = min(255, color+1)
loop()
instance.loop()
module.loop()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
clock.tick(30)
if __name__ == '__main__':
main()
def loop():
while True:
break
インストール
pip install pygbag-builder
これで準備完了です。
手順
Step1
プロジェクト用のフォルダに移動してください。そこで以下のコマンドを使います
python -m pygbag_builder main_flow
これをすると、pygbagを使えるように、whileループを含む関数をasyncで定義し直したり、色々弄ったファイルがpygbag_builder_build
というフォルダの中に生成されます。あとpygbag.yml
っていうのも一緒に作ります。
Step2
ここからはGitHub APIを使うので、トークンが必要になります。
GitHubのプロフィール欄からSettings → developer setting → Personal access tokenと進んで下さい
[Repository access] All repositories
にチェック
[Permissions]
以下のPermissionの設定をRead and Write
にする
- Actions
- Administration
- Contents
- Pages
- Webhooks
- Workflows
これでトークンが取得できたと思うので次のコマンドを使ってください
python -m pygbag_builder make_repo
案内通りにトークン、ユーザー名、リポジトリ名を入力したら、リポジトリを作成してくれます。
処理のタイミング次第で、ワークフローのrunだけ上手くいかないことがあるので、その際は、もう一回こちらを実行してもらえればと思います。リポジトリが既に存在するためエラーが出ますが、特に影響はありません。もしくはGitHubのActionから直接pygbag_build
をrunしてもいいです。
Step3
ワークフローのrunが完了したことを確認してから次のコマンドを実行してください。
python -m pygbag_builder set_page
また案内通りにトークン、ユーザー名、リポジトリ名を入力します。
これで勝手にブランチをgh-pagesというのに設定してくれるので、ちょっと待てば、リポジトリのSettings→pagesからゲームのurlにアクセスできます。
最後に
ここまで読んで下さりありがとうございました。pygbagがあんまり日本だと流行らなそうだと思ったので、そもそも海外の人向けに作ったモジュールではありますが、記事のネタとしては面白いかなと思ったので、公開しました。この記事を読んで、pygbagとか、このモジュールとか気になった人は、そんなに手間じゃないと思うので、試してみてもらえると嬉しいです。
このくらいのシンプルなゲームならすぐ公開できると思います