画面に四角形を表示しよう
今回は画面に四角形を表示するプログラムを作成します。
単純に四角形をひとつだけ表示するパターンと、四角形を複数表示するパターンを説明します。
四角形オブジェクトを作成する
まず、表示する四角形オブジェクトを作成します。
ここでは四角形の位置と大きさを指定します。
pygame.Rect(左座標, 上座標, 幅, 高さ)
以下の例は、rectオブジェクトを左座標160、上座標100、幅320、高さ200で作成しています。
実行例
rect = pygame.Rect(160, 100, 320, 200)
四角形の色を設定する
四角形の色を設定するのは、ベース画面オブジェクト.fill()で行います。
上記で作成した四角形オブジェクトを引数で渡します。
以下の例は、四角形の色を白に設定しています。
実行例
surface.fill((255,255,255), rect)
ベース画面オブジェクト.fill()に関しては、こちらも参照してください。
画面に四角形を表示するプログラム
上記のことをふまえて、画面の真ん中に四角形を表示するプログラムを書いてみましょう。
pygame.display.update(rect)で、表示する四角形のみを更新しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
### インポート import pygame from pygame.locals import * ### モジュール初期化 pygame.init() ### ベース画面設定 surface = pygame.display.set_mode((640,400)) ### 四角形設定 rect = pygame.Rect(160, 100, 320, 200) ### 四角形色設定 surface.fill((255,255,255), rect) ### 画面更新 pygame.display.update(rect) ### 無限ループ while True: ### イベント処理 for event in pygame.event.get(): if event.type == KEYDOWN and event.key == K_ESCAPE: break else: continue ### whileループ終了 break ### 終了処理 pygame.quit() |
プログラムを実行すると、以下の画像が表示されます。
複数の四角形を重ねて表示するプログラム
次に複数の四角形を重ねて表示するプログラムを書いてみましょう。
四角形オブジェクトを複数作成して、それをリストにまとめて画面に表示しています。
色合成のオプションに BLEND_ADD を指定して、重なった部分の色を混ぜ合わせています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
### インポート import pygame from pygame.locals import * ### モジュール初期化 pygame.init() ### 画面設定 surface = pygame.display.set_mode((640,400)) ### 四角形設定 rect1 = pygame.Rect( 0, 0, 370, 250) rect2 = pygame.Rect(270, 0, 370, 250) rect3 = pygame.Rect( 0, 150, 370, 250) rect4 = pygame.Rect(270, 150, 370, 250) ### 四角形色設定 rects = [] rects.append(surface.fill((127,127,127), rect1, BLEND_ADD)) rects.append(surface.fill((255, 0, 0), rect2, BLEND_ADD)) rects.append(surface.fill(( 0,255, 0), rect3, BLEND_ADD)) rects.append(surface.fill(( 0, 0,255), rect4, BLEND_ADD)) ### 画面更新 pygame.display.update(rects) ### 無限ループ while True: ### イベント処理 for event in pygame.event.get(): if event.type == KEYDOWN and event.key == K_ESCAPE: break else: continue ### whileループ終了 break ### 終了処理 pygame.quit() |
プログラムを実行すると、以下の画像が表示されます。