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:
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
color1a l’esquerra i decolor2a la dreta). La mida horitzontal de les dues parts acolorides de la barra s’ha de correspondre al valor actual de l’atributpercent(vegeu l’exemple de la figura). Per a la implementació d’aquest mètode es recomana utilitzar el mètodepygame.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.