import pygame, sys,os
from pygame.locals import *

pygame.init()
if not pygame.font: 	print 'Warning, fonts disabled'
if not pygame.mixer: 	print 'Warning, sound disabled'

width = 400
height = 400

screen = pygame.display.set_mode((width, height))
clock = pygame.time.Clock()
pygame.display.set_caption('brik')
pygame.mouse.set_visible(0)
background = pygame.Surface(screen.get_size()).convert()
background.fill((255, 255, 255))
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"""
def load_image(name, colorkey=None):
	#let try to load the file
    	try:
        	image = pygame.image.load((os.path.join('data', name))).convert()
    	except pygame.error, message:
    		raise SystemExit, message
	#then set the color key
    	if colorkey is not None:
		if colorkey is -1:
			colorkey = image.get_at((0,0))
        	image.set_colorkey(colorkey, RLEACCEL)
    	return image, image.get_rect()

def load_sound(name):
	#build dumb sound file for mute mode
	class NoneSound:
		def play(self): 
			pass
	if not pygame.mixer:
		return NoneSound()
	#try to load sound file
	try:
		sound = pygame.mixer.Sound((os.path.join('data', name)))
	except pygame.error, message:
		raise SystemExit, message
	return sound
"""
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

class ball(pygame.sprite.Sprite):
	def __init__(self, xpos, ypos, xmov, ymov):
		pygame.sprite.Sprite.__init__(self)
		self.image = pygame.Surface([(width/30), (height/30)])
		self.image.fill((0, 0, 0))
		self.rect = self.image.get_rect().move(xpos,ypos)
   		self.xmov, self.ymov = xmov, ymov

	def update(self):
		if self.rect.x <= 0:	self.xmov = -self.xmov
		if self.rect.x >= (width - width/20):	self.xmov = -self.xmov
		if self.rect.y <= 0:	self.ymov = -self.ymov
		if self.rect.y >= (height - height/20):	self.ymov = -self.ymov
		self.rect.x += self.xmov
		self.rect.y += self.ymov
		if pygame.sprite.spritecollide (self, [bar], False):
			self.ymov = -self.ymov
			self.rect.y = (3*height/4)
		if pygame.sprite.spritecollide (self, brikgrp, True):
			self.ymov = -self.ymov

	def draw(self):
		pass

class bar(pygame.sprite.Sprite):
	def __init__(self):
		pygame.sprite.Sprite.__init__(self)
		self.image = pygame.Surface([(width/5), (height/20)])
		self.image.fill((0, 0, 0))
		self.rect = self.image.get_rect().move(((width-width/5)/2), ((height*4)/5))

	def update(self):
		self.xpos, self.ypos = pygame.mouse.get_pos()
		if self.xpos >= (width - width/5) :
			self.xpos = (width - width/5)
		self.rect.x = self.xpos

	def draw(self):
		pass


class brik(pygame.sprite.Sprite):
	def __init__(self, xpos, ypos, attrib):
		pygame.sprite.Sprite.__init__(self)
		self.image = pygame.Surface([(width/10), (height/20)])
		self.image.fill(attrib)
		self.rect = self.image.get_rect().move(xpos, ypos)

	def update(self):
		pass

	def draw(self):
		pass

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ball = ball(width/2, 4*height/5, 1, 2)
bar = bar()
drawgrp = pygame.sprite.RenderUpdates((ball, bar))

brikgrp = pygame.sprite.RenderUpdates()
for item in range(0,10):
	brikgrp.add((brik((item*(width/10)),(2*height/20),(0,255,0)), brik((item*(width/10)),(3*height/20),(255,0,0)), brik((item*(width/10)),(4*height/20),(0,0,255)), brik((item*(width/10)),(5*height/20),(255,255,0))))


while True :
	clock.tick(60)

	for event in pygame.event.get():
    		if event.type == QUIT:
        		sys.exit(0)
    		#elif event.type == MOUSEBUTTONDOWN: pass
		#elif event.type == MOUSEBUTTONUP: pass

	screen.blit(background, (0, 0))

	drawgrp.update()
	drawgrp.draw(screen)
	brikgrp.draw(screen)

	pygame.display.flip()



