検索ガイド -Search Guide-

単語と単語を空白で区切ることで AND 検索になります。
例: python デコレータ ('python' と 'デコレータ' 両方を含む記事を検索します)
単語の前に '-' を付けることで NOT 検索になります。
例: python -デコレータ ('python' は含むが 'デコレータ' は含まない記事を検索します)
" (ダブルクオート) で語句を囲むことで 完全一致検索になります。
例: "python data" 実装 ('python data' と '実装' 両方を含む記事を検索します。'python data 実装' の検索とは異なります。)
img_for_tre_tron

Tré Thộn を食べたことがありますか?
ベトナム・ビンズオン滞在中の方は是非注文して食べてみて!
絶対に美味しいです!
ホーチミン市内へも配達可能です。お問い合わせください。

Have you ever had "Tré Thộn" before?
If you're living at Bình Dương in Vietnam, you "must" try to order and eat it.
I'm sure you're very surprised how delicious it is!!
If you're in Hồ Chí Minh, you have a chance to get it too. Please call!!
>>
practical_python_design_patterns

Practical Python Design Patterns - Python で学ぶデザインパターン: The Factory Pattern - Part. 1 「第4章: ファクトリーパターン - PyGame でグラフィックスを描画してみよう」の巻 投稿一覧へ戻る

Published 2022年5月24日8:50 by mootaro23

SUPPORT UKRAINE

- Your indifference to the act of cruelty can thrive rogue nations like Russia -

Practical Python Design Patterns - The Factory Pattern 編
「第4章: ファクトリーパターン - PyGame でグラフィックスを描画してみよう」の巻

Chapter 4: Factory Pattern
(第4章: ファクトリーパターン - PyGame でグラフィックスを描画してみよう)

前章では我々自身の「ゲーム」開発に取り掛かりました。しかし「何がゲームだ、文字だけじゃん」と思っている方もいるかもしれませんから、ちょっと時間を取って「画面に何かを描画する」方法を見てみたいと思います。
この章ではまず、Python を使用したグラフィックスの基礎を「ちょっとだけ」学びます。利用するのは PyGame パッケージです。同時に factory classes (ファクトリークラス) も作成していきます。
Factory classes は、ある特定のパラメータのセットを受け取り、それを他のクラスのオブジェクトの作成に利用するオブジェクト、を定義します。並行して、こうした factory classes を定義する際のテンプレート (template: 型紙) となる抽象ファクトリークラス (abstract factory classes) も定義しましょう。

Getting Started
(PyGame パッケージ事始め)

仮想環境に入っている状態で以下のコマンドを実行して PyGame パッケージをインストールしましょう:
pip install pygame
さて、PyGame を利用してウィンドウを表示してみます:
graphic_base.py
import pygame

pygame.init()
screen = pygame.display.set_mode((800, 600))
仮想環境内で実行してみてください:
python graphic_base.py
見えましたか?一瞬でしたが 幅 800 x 高さ 600 のウィンドウが出現したはずです。おめでとうございます!!初めての画面描画に成功です!!でもさすがに一瞬過ぎますね。もうちょっと眺めてみましょう:
graphic_base.py
from time import sleep
import pygame

pygame.init()
screen = pygame.display.set_mode((800, 600))

sleep(5)
画面が表示されてからこのプログラムが終了するまで5秒間 sleep させてみました。今度はしっかりとウィンドウが確認できましたね。
初めて今回のようにウィンドウを描画したときは、私はもう嬉しくて友達を呼んで見せびらかしたものですが、友達は白けていました。あなたに同じような悲しい思いはさせたくありませんから、友達に見せる前に「何か」表示してみましょう!
graphic_base.py
from time import sleep
import pygame

pygame.init()
screen = pygame.display.set_mode((800, 600))

pygame.draw.rect(screen, (255, 0, 34), pygame.Rect(42, 15, 400, 320))
pygame.display.flip()

sleep(5)
pygame.draw.rect() 関数は、screen に矩形を描画します。第1引数で描画のターゲットなるウィンドウ、第2引数では描画する矩形の色 (RGB[A])、第3引数で描画する矩形の位置とサイズをそれぞれ指定します: 最初の2つで矩形の左上の座標、3番目で幅、4番目で高さ、となります。
もし pygame.display.flip() 関数を呼び忘れるとスクリーンには何も表示されません。これは、PyGame が画面全体をメモリバッファ上に構築してから画像全体を「実際」のスクリーン上に転写するためです。ですから、スクリーン表示を変更した場合は常に pygame.display.flip() 関数を呼び出す必要があります。
どうぞ色々なカラーで、画面上の色々な場所に、色々な大きさで矩形を描画してみてください。