import pygame
import sys
SCREEN = pygame.Rect(0, 0, 400, 400)
WHITE = (255, 255, 255)
class Ball(pygame.sprite.Sprite):
def __init__(self, image_file, pos, speed):
pygame.sprite.Sprite.__init__(self)
x, y = pos
vx, vy = speed
self.image = pygame.image.load(image_file)
w = self.image.get_width()
h = self.image.get_height()
self.rect = pygame.Rect(x, y, w, h)
self.vx = vx
self.vy = vy
def update(self):
self.rect.move_ip(self.vx, self.vy)
if self.rect.left < SCREEN.left or SCREEN.right < self.rect.right:
self.vx = -self.vx
if self.rect.top < SCREEN.top or SCREEN.bottom < self.rect.bottom:
self.vy = -self.vy
self.rect = self.rect.clamp(SCREEN)
def draw(self, surface):
surface.blit(self.image, self.rect)
def main():
pygame.init()
screen = pygame.display.set_mode(SCREEN.size)
ball = Ball('ball.png', (200, 200), (5, 10))
clock = pygame.time.Clock()
while True:
clock.tick(30)
screen.fill(WHITE)
ball.update()
ball.draw(screen)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
main()
実行結果