1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【pygbag-builder】半自動でpygameをブラウザゲームにするモジュールを作ってみた

Posted at

PyPI Downloads

※この記事はREADMEの内容を日本語で書いたものです。

はじめに

 以前公開したこちらの記事の手順を半自動化したので、紹介します。「半」自動化とした理由は、手順通りにユーザーに操作してもらう必要がある点と、複雑なプログラムだと、ソースコードの置換が、モジュールの機能のみでは、十分に行われない場合があるためです。(具体的にはlambdaを使ってwhileループを含む関数を呼び出す場合など)そもそもは手動で全てをやらなければならないわけなので、複雑なゲームの場合も、使わないよりマシではあります。

準備

ファイル関係

 名前は何でもいいのでプロジェクト用のフォルダを作りましょう。そして、その中に必要なファイルを入れます。その際に、メインファイルをmain.pyにすることと、main.pyのなかで、最初に呼び出されるmain関数を作っておくことだけ注意してください。メインのファイル以外には、特に制限はありません。以下は一例です。

main.py
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()
module.py
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とか、このモジュールとか気になった人は、そんなに手間じゃないと思うので、試してみてもらえると嬉しいです。

 このくらいのシンプルなゲームならすぐ公開できると思います

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?