四角形を拡大縮小しよう
前回は四角形の色を変更しました。
今回は四角形のサイズを変更してみましょう。
四角形を拡大するプログラム
以下のプログラムは、四角形を左上に表示して徐々に拡大します。
画面サイズを超えるまで、四角形を拡大していきます。
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 52 |
### インポート import pygame from pygame.locals import * ### 定数 WIDTH = 640 # 幅 HEIGHT = 400 # 高さ ### 四角形初期サイズ size_w = 16 size_h = 10 ### モジュール初期化 pygame.init() ### 画面設定 surface = pygame.display.set_mode((WIDTH,HEIGHT)) ### 無限ループ while True: ### 四角形設定 rect = pygame.Rect(0, 0, int(size_w), int(size_h)) ### 四角形オブジェクト obj = surface.fill((255,255,255), rect) ### 画面更新 pygame.display.update(obj) ### 一定時間停止 pygame.time.wait(100) ### 四角形サイズ上限確認 if size_w <= WIDTH or size_h <= HEIGHT: ### 四角形サイズ変更 size_w *= 1.1 size_h *= 1.1 ### イベント処理 for event in pygame.event.get(): if event.type == KEYDOWN and event.key == K_ESCAPE: break else: continue ### whileループ終了 break ### 終了処理 pygame.quit() |
プログラムを実行すると、以下のように四角形が徐々に大きくなっていきます。
四角形を画面の中央で拡大縮小するプログラム
以下のプログラムは、四角形を画面中央に表示してそれを徐々に拡大縮小します。
四角形を拡大したあと縮小すると、拡大した四角形がそのまま残ってしまうので、ベース画面を黒で塗りつぶす処理を入れています。
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
### インポート import pygame from pygame.locals import * ### 定数 WIDTH = 640 # 幅 HEIGHT = 400 # 高さ SIZE_W_MIN = 16 # 幅最小値 SIZE_H_MIN = 10 # 縦最小値 ### 四角形初期サイズ size_w = SIZE_W_MIN size_h = SIZE_H_MIN ### 拡大縮小フラグ flag = 0 ### モジュール初期化 pygame.init() ### 画面設定 surface = pygame.display.set_mode((WIDTH,HEIGHT)) ### 無限ループ while True: ### ベース画面初期化 surface.fill((0,0,0)) pygame.display.update() ### 四角形設定 rect = pygame.Rect(int((WIDTH-size_w)/2), int((HEIGHT-size_h)/2), int(size_w), int(size_h)) ### 四角形オブジェクト obj = surface.fill((255,255,255), rect) ### 画面更新 pygame.display.update(obj) ### 一定時間停止 pygame.time.wait(100) ### 四角形サイズ変更 if flag == 0: size_w *= 1.1 size_h *= 1.1 else: size_w /= 1.1 size_h /= 1.1 ### 四角形サイズ下限確認 if size_w <= SIZE_W_MIN or size_h <= SIZE_H_MIN: ### 最小値設定 size_w = SIZE_W_MIN size_h = SIZE_H_MIN ### 乗算 flag = 0 ### 四角形サイズ上限確認 elif size_w >= WIDTH or size_h >= HEIGHT: ### 最大値設定 size_w = WIDTH size_h = HEIGHT ### 除算 flag = 1 ### イベント処理 for event in pygame.event.get(): if event.type == KEYDOWN and event.key == K_ESCAPE: break else: continue ### whileループ終了 break ### 終了処理 pygame.quit() |
プログラムを実行すると、以下のように四角形が中央で徐々に大きくなったあと小さくなっていきます。