Barra de progrés

Volem dissenyar una classe per a representar una barra de progrés, que pot servir, per exemple, per visualitzar el nivell de força o de vida d’un personatge del videojoc. Amb aquesta finalitat, es demana que al fitxer pbar.py hi escriviu la classe ProgressBar, que ha de ser un sprite de pygame. Aquesta classe, a més a més dels atributs indispensables dels sprites, tindrà els atributs addicionals percent (un float), que indicarà el percentatge de la part plena de la barra de progrés, color1, que serà el color de la part plena de la barra (el de l’esquerra) i color2, el color de la part buida (el de la dreta). L’exemple de la figura mostra una barra de 200x40 píxels plena al 70%, de colors vermell i gris:

../../_images/pbar.svg

Cal que la classe tingui aquests dos mètodes:

__init__(self, posc, amplada, alçada, color, color_fons)

Crea una barra de progrés inicialment plena al 100%, amb una imatge de les mides indicades per amplada i alçada centrada al punt posc. Els paràmetres color i color_fons indiquen de quin color han de ser la part plena i buida de la barra, respectivament.

update(self)

Actualitza la imatge de l”sprite segons el valor que tenen els seus atributs, és a dir, ha de quedar una imatge bicolor (del color1 a l’esquerra i de color2 a la dreta). La mida horitzontal de les dues parts acolorides de la barra s’ha de correspondre al valor actual de l’atribut percent (vegeu l’exemple de la figura). Per a la implementació d’aquest mètode es recomana utilitzar el mètode pygame.Surface.fill(), cridant-lo amb els paràmetres opcionals adequats.

Al fitxer main_barra.py, disposeu d’un programa principal de prova per a la classe que, funcionant correctament , ha de mostrar tres barres, dues petites (verda i blava amb fons blanc), i una més gran (vermella amb fons gris). Aquesta tercera incrementa o decrementa el seu valor un 5% quan es premen les tecles de cursor a la dreta i a l’esquerra. Aquest programa de prova utiltza també el mòdul de configuració conf.py.

Solució

Disposeu d’una solució a pbar.py.