pygameを使ってPythonで絵を描く|Pythonでやってみる

Python独学ならTech-Joho TOP > いろいろやってみた >pygameを使ってPythonで絵を描く


pygameとは

pygameは、画像や音楽を含むプログラムを作りやすくするPythonのライブラリの一つです。
ゲームと言う名前が入っていますが、ゲームだけに限らず、マルチメディアなアプリを作ることができるそうです。

この記事では、pygameを使って簡単にお絵かきをしてみます。

参考 pygame公式
pygame


1.Pythonの実行環境の準備

pygameは、このサイトでおなじみのブラウザ上の黒い欄、Brython Consoleでは動きません。
まず、自分のパソコンにインストールする必要があります。

pygameをインストールする前に、そもそもpythonをインストールする必要があるのですが、下の2つの記事を参考に、condaかvirtualenvでインストールしてください。
Pythonのインストール方法の選択肢 | Django 入門
virtualenvでWindows10 に Django インストール | Django 入門20
Windows 10 condaによる環境構築からdjangoのインストール | Django 入門


2.pygameインストール

pipでpygameをインストールしましょう。
anaconda prompotや、comand prompt、power shellなどの、黒い画面で、下のコマンドを実行してください。

>>>pip install pygame

下のように、”Successfully installed”と出たらインストール成功です。

>>>pip install pygame
Collecting pygame
  Downloading pygame-1.9.3-cp36-cp36m-macosx_10_9_intel.whl (4.8MB)
    100% |████████████████████████████████| 4.8MB 136kB/s
Installing collected packages: pygame
Successfully installed pygame

3.まずは絵を書いてみる

絵を書いてみましょう。
シンプルに四角形(矩形)を描いてみましょう。
下の内容のファイルpygametest.pyを作成して下さい。
pygametest.py

    pygame.display.update()
import pygame
from pygame.locals import *
import sys

pygame.init()
screen = pygame.display.set_mode((300, 200))
pygame.display.set_caption("This is pygame sample")
while(True):
    screen.fill((0,0,0,))
    pygame.draw.rect(screen, (255,255,0), Rect(10,10,20,50))

    pygame.display.update()
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()

次に、ファイルを保存したディレクトリで下のコマンドを実行してください。

>>> python pygametest.py

このような黄色い長方形が左上に表示された小さなウインドウが出てくるはずです。
yellow lect

このウインドウを消すには、”python pygametest.py”を打ち込んだ黒い画面(ターミナル)でCtrl(コントロール)とCを同時に押して下さい。


4.解説

作成したコードの各部分の意味を解説していきます。

import pygame
from pygame.locals import *
import sys

この部分では、pygameモジュールなど、必要なモジュールををインポートしています。

pygame.init()
screen = pygame.display.set_mode((300, 200))
pygame.display.set_caption("This is pygame sample")

この部分では、ウインドウを作っています。
“pygame.display.set_mode((300, 200))”で、幅300ピクセル、高さ200ピクセルのウインドウを作っています。
これは変数screenに代入されています。

“pygame.display.set_caption(“This is pygame sample”)”では、ウインドウ上部のタイトルを指定しています。
“This is pygame sample”と表示されているのがわかると思います。 

while(True):
    screen.fill((0,0,0,))
    pygame.draw.rect(screen, (255,255,0), Rect(10,10,20,50))

    pygame.display.update()

この部分では、画面に表示する内容を決めています。

“while(True):”があるので、まず無限ループがつくられます。

その無限の繰り返しの中で、
“screen.fill((0,0,0,))”は背景を透明にします。

“pygame.draw.rect(screen, (255,255,0), Rect(10,10,20,50))”は、黄色の長方形を作っています。

参考
pygame.Rect

” (255,255,0)”が黄色を指定しています。

pygameでは、色を(R,G,B)を0から255で指定するので、(255,255,0)は、Rつまり赤色とGつまり緑色が最大値を指定しています。
光の三原色の合成を考えると、赤と緑で黄色になります。

参考
光の3原色による色の合成 – 東京高専情報工学科

“Rect(10,10,20,50))”の部分はRectanble、つまり矩形を作っています。
最初の10,10は矩形の左上の座標です。
後ろの20,50は、それぞれ矩形の幅と高さです。
まとめると、ウインドウの左上から右に10ピクセル、下に10ピクセルのところに、幅20ピクセル、高さ50ピクセルの矩形を描け、という命令になります。

while(True):
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()

最後に、この部分は、pygameの作ったウインドウを終了することができるようにしています。
“python pygametest.py”を打ち込んだ黒い画面(ターミナル)でCtrl(コントロール)とCを同時に押す以外にも、
矩形が表示されているウインドウをクリックしたあと、Ctrl+Cを押しても終了することができます。


図形を描画する 人工知能に関する断創録


この続きの、更に高度なお絵かきの方法を追加していく予定です。