Programación


Temas

1.- Lenguajes de programación compilados (C, Fortran, Rust...) e interpretados (Javascript, php, python).

2.- Módulos: numpy, beautiful soap, pygame, ...

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.