Pygameを使って文字の背景色を変更しよう
前回はPygameを使って文字を表示するところまで説明しました。
今回は文字の背景色を一定間隔ごとに変更させてみましょう。
背景色を赤、緑、青の順番で切り替えよう
前回の文字の背景色は緑でしたが、今回は赤→緑→青の順番で一定間隔ごとに変更します。
Pythonのリストはオブジェクトも要素として使えますので、それぞれ赤、緑、青用のテキスト画面オブジェクトを作成してリストに格納します。
赤は(255,0,0)、緑は(0,255,0)、青は(0,0,255)で表現します。
前回のプログラムを変更して、テキスト画面オブジェクトをリストに格納すると、以下のようになります。
| 
					 1 2 3 4 5 6 7  | 
						### 文字設定 font = pygame.font.Font("/Windows/Fonts/meiryo.ttc", 40) ### 文字列設定(リスト) text = [] for rgb in [(255,0,0),(0,255,0),(0,0,255)]:     text.append(font.render("Hello World", True, (255,255,255), rgb))  | 
					
一定間隔で停止する
何もしないと目まぐるしく画面が変わってしまうので、一定間隔でウエイトします。
ウエイトする方法は、Python標準ライブラリーのtime.sleep()を使う方法や、Pygameのpygame.time.wait()、pygame.time.delay()を使う方法があります。
今回はPygameを使っているので、pygame.time.wait()を使います。
pygame.time.wait(ミリ秒)
引数には停止する間隔をミリ秒単位で設定します。
文字の背景色を切り替えるプログラム
前回のプログラムを元にして、文字の背景色を切り替えるプログラムを書いてみましょう。
| 
					 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 42 43 44 45 46 47 48 49 50 51  | 
						### インポート import pygame from pygame.locals import * ### モジュール初期化 pygame.init() ### 画面設定 surface = pygame.display.set_mode((640,400)) ### 文字設定 font = pygame.font.Font("/Windows/Fonts/meiryo.ttc", 40) ### 文字列設定(リスト) text = [] for rgb in [(255,0,0),(0,255,0),(0,0,255)]:     text.append(font.render("Hello World", True, (255,255,255), rgb)) ### 配列インデックス idx = 0 ### 無限ループ while True:     ### テキスト画面表示     surface.blit(text[idx], (208,169))     ### 画面更新     pygame.display.update()     ### 一定時間停止     pygame.time.wait(1000)     ### インデックス変更     if idx >= len(text) - 1:         idx = 0     else:         idx += 1     ### イベント処理     for event in pygame.event.get():         if event.type == KEYDOWN and event.key == K_ESCAPE:             break     else:         continue     ### whileループ終了     break ### 終了処理 pygame.quit()  | 
					
リストの要素数-1以上になったらインデックスを0に戻します。
1秒は1000ミリ秒なので、pygame.time.wait()の引数には1000を渡します。
プログラムを実行すると、以下のように文字列の背景色が変わります。