Programación
Temas
1.- Lenguajes de programación compilados (C, Fortran, Rust...) e interpretados (Javascript, php, python).
- Los microprocesadores sólo ejecutan las instrucciones del fabricante (código máquina)
- Para facilitar la tarea a los programadores, se han ideado lenguajes de programación que se asemejan más al lenguaje humano
- Los programas tienen que traducirse a código máquina. Puede hacerse previamente (lenguajes compilados) o en tiempo de ejecución (lenguajes interpretados)
2.- Módulos: numpy, beautiful soap, pygame, ...
- La librería estándar de python son las instrucciones básicas de programación
- Los módulos amplían este conjunto con instrucciones especializadas en determinadas áreas
- NumPy se emplea en cálculo numérico, Beautiful soap para extraer datos de la web (web scrapping), pygame en videojuegos...
3.- Algoritmo de un videojuego.
4.- Bucle del juego. Variables, funciones y eventos. Tiempo
Bucle del juego.
Instrucción while. Repite las instrucciones mientras la condición sea cierta (tenga el valor True).
Variables: Espacio de memoria en el que almacenamos un valor (texto, número...) y al que asociamos un nombre para referirnos a él.
Por ejemplo:
Radio=23
Funciones: conjunto de instrucciones que agrupamos bajo un nombre. Se les puede pasar valores (parámetros) y pueden devolver valores.
Por ejemplo, podríamos escribir una función areaCirculo(radio) que calculase el area de un circulo si le facilitamos su radio.
def areaCirculo(R):
return 3.14*R*R
A1=areaCirculo(10) (A1 contendrá el valor 314)
areaotrocirculo=areaCirculo(5) (areotrocirculo contendrá el valor 78.5)
Eventos: mensajes de los periféricos. Eventos del teclado, del ratón...
Manejo de eventos con pygame
El reloj y los ticks
Fuente : Pong_A
5.- Escribiendo y dibujando en la pantalla: blit y flip
pygame: surface, rect, blit, flip
Es mucho más lento acceder a la memoria de video que a la memoria RAM, así que se trabaja con una copia de la pantalla en RAM y se vuelca en la memoria de video de una vez por cada pasada del bucle del juego.
La forma de operar es la siguiente:
Se crean superficies, una por cada sprite (como pequeñas pegatinas transparentes). Se dibuja en cada superficie por separado, cuando se ha terminado de dibujar una superficie, se copia a la memoria RAM en sus coordenadas (blit).
Cuando se han copiado todos los sprites en la memoria RAM, cada uno en su posición, se vuelca la copia en RAM a la memoria de video de una vez, para que aparezca en el monitor (flip).
Fuente :Pong_B
6.- Clases, objetos y condicionales. La bola rebota en los bordes de la ventana
Programación orientada a objetos. Propiedades y métodos. Instrucción self
Instrucciones selectivas e iterativas: if y for.
Coordenadas. La bola rebota
Fuente :Pong_C
7.- Jugador: la pala responde al teclado. IA: La máquina maneja su pala.
Fuente :Pong_D
8.- Colisiones. La bola rebota en las palas.
Fuente :Pong_E
9.- Últimos detalles: puntos.
Fuente :Pong_F
Entorno de programación (IDE) en linea
Copia el código de cada ejemplo en el IDE en linea. Run.
CTRL+A selecciona todo el texto
CTRL+C copia el texto seleccionado
CTRL+V pega el texto
Enlace a trinket.io/pygame
Manuales, libros y recursos en linea para consulta y continuar aprendiendo
Página oficial. En el apartados Docs hay información para todos los niveles, incluidos principiantes (begginners)
Documentación oficial
https://inventwithpython.com/. Muy recomendable, particularmente Making Games with Python & Pygame y Automate the Boring Stuff with Python que se puede consultar en linea.