Pygame é a biblioteca de referencia para moita xente que comenza Python. A razón é que é moito máis divertido programar videoxogos que bases de datos ou resolver algorítmos matemático-aritméticos. Pero tendemos a esquecer que para programar videoxogos temos que facer cousas variadas e complexas, como xestionar pequenas bases de datos ou resolver algoritmos.
O que é indudable é que programar videoxogos é unha tarefa ou proxecto ideal para facer en grupo (pola extensión, complexidade e diversidade de tarefas a desenvolver).
Como curiosidade informática, e para valorar a potencia de Pygame, indicar que é un port de SDL, biblioteca multiplataforma que se emprega para desenvolver xogos comerciais que podes atopar en páxinas como Steam. Podes comprobalo na súa páxina oficial.
Na nosa páxina imos utilizar Pygame só para falar de como ler e modificar programas xa feitos. Se queres programar videoxogos dende cero tes a opción de utilizar TkInter (máis limitada que Pygame) ou ver os titoriais na páxina de Pygame. Dous recomendados, en inglés, poden ser Python game book e Dr0id.
INSTALAR
Dependendo da versión que teñas de Python terás pygame instalada ou non. Se non a tes podes instalala con PIP dende a terminal, en Linux:
python3 -m pip install -U pygame --user #isto de user é para instalar só no teu usuario
Para outros sistemas operativos podes consultar na páxina oficial.
PROBAR
Moi importante: en Pygame veñen instalados varios programas de exemplo. Poden variar dependendo da versión que teñas. En calquera caso podes baixalos desta páxina de Github.
Se queres abrir un, chamado aliens, dende a terminal escribimos:
python3 -m pygame.examples.aliens
Ollo: se o abres dende o IDE podes ter problemas, dependendo da versión de Python para o que se teña escrito, e do código, en especial polos módulos (bibliotecas) que utilice.
Terías que ver o típico xogo baseado en Space Invaders:
LER
Se queres probar a programar un xogo deste tipo perfecto. É con diferencia unha das mellores cousas que podes facer para demostrar(te) que sabes programar. Pero se aínda o ves difícil, imos polo camiño lento. Imos utilizar o xogo de aliens para ver a estrutura do programa.
Se entraste aquí sen ter programado moito en Python, podes ler primeiro o que escribimos sobre o problema da concorrencia, para ver unha estrutura básica de programa en Python de complexidade media, coma por exemplo este de aliens.
O xogo de aliens, coma calquera programa ben feito, está comentado para facilitarnos a súa lectura e reutilización.
Partes do programa de aliens | Liñas de exemplo |
---|---|
Importar módulos (bibliotecas) |
import random, os.path |
Contantes xerais # se modificar isto modificas o comportamento do programa |
MAX_SHOTS = 2 ALIEN_ODDS = 22 |
Configuración xeral do programa: cargar módulos, avisos en caso de erro... |
if not pygame.image.get_extended(): raise SystemExit, "Sorry, extended image module required" |
Clases: definir os obxectos a utilizar e as interacións entre eles (xogador, aliens, disparo, puntuación...) |
class Shot(pygame.sprite.Sprite): def update(self): |
Función principal (main()): viría a ser o xogo en sí, o seu esqueleto. Son "só" ordes secuenciais, condicionais ou en bucle. |
def main(winstyle = 0): # Initialize pygame pygame.init() if pygame.mixer and not pygame.mixer.get_init(): print 'Warning, no sound' pygame.mixer = None |
Executar Programa: só ten unha liña, chamar á función principal, main() |
if __name__ == '__main__': main() |
MODIFICAR
Para empezar a traballar podes modificar xogos da seguinte páxina web: Programar xogos de arcade en Python empregando Pygame
Pygal: gráficas sexys TkInter: xanelas e botóns TkInter 2: debuxar e animar Pygame: videoxogos