import sys, pygame
pygame.init()

window_size=max_width, max_height = 600, 240
balloffset = [1, 2]
white = 255,255,255

numballs = 5
class Doggy(pygame.sprite.Sprite):
	
	def __init__(self, side):
		pygame.sprite.Sprite.__init__(self)
		self.image, self.rect = pygame.image.load("doggy.bmp").convert()
		screen = pygame.display.get_surface()
		self.area = screen.get_rect()
		self.side = side
		self.speed = 10
		self.state = "still"
		self.reinit()

	def reinit(self):
		self.state = "still"
		self.movepos = [0,0]
		if self.side == "left":
			self.rect.midleft = self.area.midleft
		elif self.side == "right":
			self.rect.midright = self.area.midright

	def update(self):
		newpos = self.rect.move(self.movepos)
		if self.area.contains(newpos):
			self.rect = newpos
		pygame.event.pump()

	def moveup(self):
		self.movepos[1] = self.movepos[1] - (self.speed)
		self.state = "moveup"

	def movedown(self):
		self.movepos[1] = self.movepos[1] + (self.speed)
		self.state = "movedown"

class BouncyBall:
	def __init__ (self, image, init_x, init_y, speed):
		self.speed = speed
		self.image = image
		self.pos = image.get_rect().move(init_x, init_y)
	def move(self):
		self.pos = self.pos.move(self.speed)
		if self.pos.left < 0  or self.pos.right > max_width:
			self.speed[0] = -self.speed[0]
		if self.pos.top < 0 or self.pos.bottom > max_height:
			self.speed[1] = -self.speed[1]

screen = pygame.display.set_mode(window_size)

ball_img = pygame.image.load("ball.bmp").convert()

balls = []
for i in range(numballs):
	b = BouncyBall(ball_img, i*100, i+5, balloffset)
	balls.append(b)

while 1:
	for event in pygame.event.get():
		if event.type == pygame.QUIT: sys.exit()

	for b in balls:
		screen.fill(white)

	for b in balls:
		b.move()
		screen.blit(b.image, b.pos)

	pygame.display.update()
	pygame.time.delay(10)

