Pygame入門 ブロック崩しのパドルをスプライトで作る
スプライトの使い方
1.「pygame.sprite.Sprite」を継承してスプライトオブジェクトを作る
2.スプライトグループを作る
3.スプライトグループにスプライトオブジェクトを追加する
4.スプライトグループの更新を実行する
グループに追加されているスプライトオブジェクトのupdate()メソッドが実行される。
5.スプライトグループの描画を実行する
グループに追加されているスプライトオブジェクトのself.imageとself.rectの内容を使って描画される。
self.image(pygame.Surface型)によって描画される内容が決まる。
self.rect(pygame.Rect型)によって描画される位置が決まる。
マウスの位置によってパドルが左右に動くプログラム
import pygame import sys SCREEN = pygame.Rect(0, 0, 400, 400) FPS = 30 WHITE = (255, 255, 255) GREEN = (0, 255, 0) PADDLE_WIDTH = 60 PADDLE_HEIGHT = 20 PADDLE_POS_Y = SCREEN.bottom - PADDLE_HEIGHT * 2 class Paddle(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) self.image = pygame.Surface((PADDLE_WIDTH, PADDLE_HEIGHT)) self.image.fill(GREEN) self.rect = pygame.Rect(0, PADDLE_POS_Y, PADDLE_WIDTH, PADDLE_HEIGHT) def update(self): self.rect.left = pygame.mouse.get_pos()[0] #Paddleの左端をマウスのX座標にする self.rect = self.rect.clamp(SCREEN) #SCREENから出ないようにする pygame.init() clock = pygame.time.Clock() screen = pygame.display.set_mode(SCREEN.size) paddle = Paddle() #スプライトオブジェクトの作成 sprite_group = pygame.sprite.Group() #スプライトグループの作成 sprite_group.add(paddle) #スプライトグループへスプライトオブジェクトを追加 while True: screen.fill(WHITE) sprite_group.update() #スプライトグループの更新 sprite_group.draw(screen) #スプライトグループの描画 pygame.display.update() clock.tick(FPS) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit()