diff --git a/python-total/dia_10/README.md b/python-total/dia_10/README.md index 2dba813..fe5a1f3 100644 --- a/python-total/dia_10/README.md +++ b/python-total/dia_10/README.md @@ -1,5 +1,18 @@ # Día 10 - Programa el juego "Invasión espacial +Biblioteca pygame https://pypi.org/project/pygame/ +```python +pip install pygame +``` + +Para descargar iconos: https://www.flaticon.com/ + +Rueda RGB: https://www.colorspire.com/rgb-color-wheel/ + +Debemos tener en cuenta el ancho y alto de la pantalla creada, respecto el eje x e y, para ubicar objectos en ella. + +![](../img/dia10_01.png) + ## Índice - [Día 10 - Programa el juego "Invasión espacial](#día-10---programa-el-juego-invasión-espacial) - [Índice](#índice) @@ -9,8 +22,77 @@ ## 10.1. - Distancia entre dos puntos +La fórmula de la distancia es una expresión algebraica utilizada para determinar la distancia entre dos puntos de coordenadas (x1 , y1 ) y (x2 , y2 ). + +![](../img/dia10_02.png) + +Ejemplo de la fórmula: + +![](../img/dia10_03.png) + +D = sqrt[(3 - -1)2 + (4 - 1)2 ] + +D = sqrt[(4 )2 + (3)2 ] + +D = sqrt[16+ 9 ] + +D = sqrt[25 ] + +D = 5 + +Esto nos sirve para ajustar las colisiones en el juego, de la bala con el enemigo o del enemigo con el jugador. + ## 10.2. - Convertir el Juego en un Archivo Ejecutable (.exe) +Este es un manual paso a paso para transformar cualquier programa de Python en un programa independiente, para poderlo ejecutar fuera del IDE. + +Básicamente el proceso consta de 2 grandes pasos: +1. Convertir las fuentes de tipo Sting a objetos Bytes +2. Utilizar pyinstaller + +Vamos por partes: +1. Convertir las fuentes de tipo Sting a objetos Bytes + 1. Descarga la o las fuentes empleadas en el juego, en este caso FreeSansBold.ttf (https://www.download-free-fonts.com/details/2045/free-sans-bold). Luego guárdala en la carpeta donde se encuentra Invasión_Espacial.py como se muestra en la imagen siguiente: + + ![](../img/dia10_04.png) + + 2. Crea una función que transforme el nombre de la fuente (“FreeSansBold.ttf”) de string a objeto Bytes. Para eso importamos la librería io, y pasamos como parámetro el nombre de la fuente al almacenar la función en una variable. + + ![](../img/dia10_05.png) + + 3. Almacena la función en una variable que luego se pasará como objeto Bytes a pygame.font.Font. + + ![](../img/dia10_06.png) + +2. Utilizar pyinstaller + 1. Instala pyinstaller usando: +pip installer pyinstaller + 2. Abre CMD en la carpeta donde se encuentra el archivo Invasión_Espacial.py + + ![](../img/dia10_07.png) + + 3. Escribe el siguiente comando: + ```shell + pyinstaller --clean --onefile --windowed Invasión_Espacial.py + ``` + + Donde cada expresión significa lo siguiente: + + - `--clean`: elimina todos los archivos temporales y directorios creados por pyinstaller durante la construcción del archivo ejecutable. + - `--onefile`: crea un archivo ejecutable que contiene todos los archivos necesarios para ejecutar el script, incluyendo los módulos y bibliotecas utilizadas por el script. + - `--windowed`: crea un archivo ejecutable que se ejecuta en una ventana en lugar de en pantalla completa. + - `Invasión_Espacial.py`: es el nombre del script Python que se va a convertir en un archivo ejecutable. + + 4. Luego de unos segundos se terminará de correr el comando y la consola mostrará el siguiente mensaje: + + ![](../img/dia10_08.png) + + Se van a generar dos carpetas, una llamada built y otra llamada dist. En esta última se deberán copiar todos los archivos que son referencias para que el juego funcione: + + ![](../img/dia10_09.png) + +¡Y eso es todo! ¡Espero que te sea de gran ayuda para que peudas compartir tus programas con el mundo! + ## Ficheros y documentación - [fonts](fonts) diff --git a/python-total/img/dia10_01.png b/python-total/img/dia10_01.png new file mode 100644 index 0000000..ec57803 Binary files /dev/null and b/python-total/img/dia10_01.png differ diff --git a/python-total/img/dia10_02.png b/python-total/img/dia10_02.png new file mode 100644 index 0000000..43d0875 Binary files /dev/null and b/python-total/img/dia10_02.png differ diff --git a/python-total/img/dia10_03.png b/python-total/img/dia10_03.png new file mode 100644 index 0000000..37f04cc Binary files /dev/null and b/python-total/img/dia10_03.png differ diff --git a/python-total/img/dia10_04.png b/python-total/img/dia10_04.png new file mode 100644 index 0000000..84cf032 Binary files /dev/null and b/python-total/img/dia10_04.png differ diff --git a/python-total/img/dia10_05.png b/python-total/img/dia10_05.png new file mode 100644 index 0000000..0667c56 Binary files /dev/null and b/python-total/img/dia10_05.png differ diff --git a/python-total/img/dia10_06.png b/python-total/img/dia10_06.png new file mode 100644 index 0000000..dec1575 Binary files /dev/null and b/python-total/img/dia10_06.png differ diff --git a/python-total/img/dia10_07.png b/python-total/img/dia10_07.png new file mode 100644 index 0000000..a336e35 Binary files /dev/null and b/python-total/img/dia10_07.png differ diff --git a/python-total/img/dia10_08.png b/python-total/img/dia10_08.png new file mode 100644 index 0000000..af8422f Binary files /dev/null and b/python-total/img/dia10_08.png differ diff --git a/python-total/img/dia10_09.png b/python-total/img/dia10_09.png new file mode 100644 index 0000000..5d8540a Binary files /dev/null and b/python-total/img/dia10_09.png differ