PyGame Boilerplate 2022年4月22日
私はgamedevに少しpokingです.部分的には、私の脳/skillsetの異なる部分を引っ張っているので、部分的に理解してください.
私はいくつかのPyGame Boilerplateテンプレートを見ました、しかし、それらはすべてglobl変数に大きく依存しているようです.それは私が一般的に何かを開発する方法ではない.私はパッケージを私は、すべての良いものをインストール、実行、インポート、テストすることができますパッケージが欲しい.
現在持っているのは、Githubにある単一のモジュールスターターパッケージであり、非常に小さなコードでゲームをビルドして起動することができます.
GitHubのパッケージなのでgit + prefixでインストールできます.
あなたがゲームから継承して、迅速なゲームを行うことができますし、呼び出し
あなたは
ここでは、現在の
ピゲボイルプレート
私はいくつかのPyGame Boilerplateテンプレートを見ました、しかし、それらはすべてglobl変数に大きく依存しているようです.それは私が一般的に何かを開発する方法ではない.私はパッケージを私は、すべての良いものをインストール、実行、インポート、テストすることができますパッケージが欲しい.
現在のスターター
現在持っているのは、Githubにある単一のモジュールスターターパッケージであり、非常に小さなコードでゲームをビルドして起動することができます.
インストール
GitHubのパッケージなのでgit + prefixでインストールできます.
pip install git+https://github.com/WaylonWalker/pygame-starter
例ゲーム
あなたがゲームから継承して、迅速なゲームを行うことができますし、呼び出し
.run()
.この例では、画面をアクアカラーで塗りますあなたは
game
メソッドですべてのゲームロジックを置くことができます.from pygame_starer import Game
class MyGame(Game):
def game(self):
self.screen.fill((128, 255, 255))
if __name__ == "__main__":
game = MyGame()
game.run()
スターター
ここでは、現在の
game.py
のようなものです.私はおそらく時間が経つにつれてそれを更新し、私はそれをしたいことについての詳細を学びます.from typing import Tuple
import pygame
class Game:
def __init__(
self,
screen_size: Tuple[int, int] = (854, 480),
caption: str = "pygame-starter",
tick_speed: int = 60,
):
"""
screen_size (Tuple[int, int]): The size of the screen you want to use, defaults to 480p.
caption (str): the name of the game that will appear in the title of the window, defaults to `pygame-starter`.
tick_speed (int): the ideal clock speed of the game, defaults to 60
## Example Game
You can make a quick game by inheriting from Game, and calling
`.run()`. This example just fills the screen with an aqua color, but
you can put all of your game logic in the `game` method.
```
python
from pygame_starer import Game
class MyGame(Game):
def game(self):
self.screen.fill((128, 255, 255))
if __name__ == "__main__":
game = MyGame()
game.run()
```
"""
pygame.init()
pygame.display.set_caption(caption)
self.screen_size = screen_size
self.screen = pygame.display.set_mode(self.screen_size)
self.clock = pygame.time.Clock()
self.tick_speed = tick_speed
self.running = True
self.surfs = []
def should_quit(self):
"""check for pygame.QUIT event and exit"""
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.running = False
def game(self):
"""
This is where you put your game logic.
"""
...
def reset_screen(self):
"""
fill the screen with black
"""
self.screen.fill((0, 0, 0))
def update(self):
"""
run one update cycle
"""
self.should_quit()
self.reset_screen()
self.game()
for surf in self.surfs:
self.screen.blit(surf, (0, 0))
pygame.display.update()
self.clock.tick(self.tick_speed)
def run(self):
"""
run update at the specified tick_speed, until exit.
"""
while self.running:
self.update()
pygame.quit()
if __name__ == "__main__":
game = Game()
game.run()
Reference
この問題について(PyGame Boilerplate 2022年4月22日), 我々は、より多くの情報をここで見つけました https://dev.to/waylonwalker/pygame-boilerplate-apr-2022-2p8oテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol