Está en la página 1de 28

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO

PRIVADO
“TECNOTRONIC”

PROGRAMA DE ESTUDIOS DESARROLLO DE SISTEMAS DE


INFORMACIÓN

INFORME DE PROYECTO:
JUEGO SPACE BATTLE EN PYTHON

PRESENTADO POR:
- NUÑEZ MIRANDA HECTOR GUSTAVO
- MAMANI QUISPE ELISABETH
- LIVISE MAMANI JHON ANDERSON
-LUQUE MENDOZA SUSAN DAYSI
- CHOQUE ÑAUPA WILLIAM JOSE

SEMESTRE Y SECCIÓN: I – A
DOCENTE: ING. YEFFERSON ARCADIO AROQUIPA MAMANI

JULIACA – PUNO – PERÚ


AÑO 2022
DEDICATORIA

Principalmente dedicamos este trabajo a Dios puesto que nos brinda sabiduría, amor y
paciencia, nos ayuda en los momentos más difíciles brindándonos valores que nos
fortalezcan no solo como trabajo de grupo, sino como personas. A la vez también
dedicamos este trabajo al I.E.S.T.P. TECNOTRONIC por encomendarnos la labor de
realizar el presente informe que amplia nuestra capacidad intelectual, dado que el Ing.
Yefferson Arcadio Aroquipa Mamani, nos brindó su sabiduría en distintos campos del
conocimiento, ayudándonos así en varios aspectos que requerimos para el desarrollo de
nuestro informe.
AGRADECIMIENTO

Agradecemos a Dios en primer lugar por darnos la oportunidad de seguir viviendo. A


nuestras familias por su apoyo, amor y estar siempre con nosotros y a nuestros amigos
por hacer que nuestras vidas sean distintas, también agradecemos a nuestro Ing. Yefferson
Arcadio Aroquipa Mamani, que como docente de esta unidad didáctica nos ha orientado,
apoyado y corregido en nuestra labor académica con un interés y una entrega que han
sobrepasado todas las expectativas. Como alumnos, agradeceremos por ser parte de
nuestras vidas.
INTRODUCCIÓN
La programación es un concepto que prácticamente todo el mundo conoce, ya que la
tecnología avanza cada vez más en un mundo donde se pretende automatizar el trabajo a
través de programas con código. Podemos definir la programación como el proceso
utilizado para idear y ordenar las acciones necesarias para realizar una determinada tarea
en un lenguaje correcto.

Debido a la dificultad que conlleva el aprendizaje de la programación a los nuevos


estudiantes, y a la gran cantidad de lenguajes diferentes que existen, se ha querido orientar
este trabajo de fin de grado al diseño de un juego para las personas que quieren comenzar
a programar de manera sencilla e interactiva. Para el diseño del juego.

El presente informe trata del juego Space Battle que fue creado usando el programa Visual
Code y Python en los cuales lo realizamos paso a paso.

Es un juego de acción y estrategia ambientado en el espacio.


OBJETIVO

OBJETIVO GENERAL

programar un juego en Python donde puedan jugar dos jugadores.

OBJETIVO ESPECIFICO

• Conocer y aprender las funciones de las librerías de Python.


• Conocer y aprender las librerías que se utilizan en la programación.

MARCO TEORICO

PYTHON

Python es un lenguaje de programación de alto nivel que se utiliza para desarrollar


aplicaciones de todo tipo. La razón por la que se denomine como un lenguaje joven, se
debe a que sus inicios se remontan a principios de los 90s, de manera específica la primera
versión vio la luz en 1991, pero fue hasta después de tres años cuando se publica la versión
1.0.

Python fue desarrollado por el investigador holandés Guido Van Rossum, quien en
aquellas épocas trabajaba en el centro de investigación CWI (Centrum Wiskunde &
Informática) de Amsterdam.

A Van Rossum le fue asignado un proyecto en el que tenía que desarrollar un sistema
operativo distribuido llamado Amoeba, las condiciones en que se encontraba el CWI, es
que tenía implementado un lenguaje de programación llamado ABC.

Guido decidió crear un nuevo lenguaje para el proyecto Amoeba, para superar las
limitaciones y problemas con los que se encontró. Una vez presentado Python, CWI
decidió liberar el intérprete del lenguaje bajo una licencia open source propia.

En tanto, para inicio del siglo XXI y coincidiendo con la publicación de la versión 1.6, se
tomó la decisión de cambiar la licencia por una que sea compatible con GPL (General
Public Licence). Esta nueva licencia se denominará Python Software Foundation Licence.

El anterior hecho implica que es posible modificar el código fuente y desarrollar código
derivado, sin la necesidad de hacerlo open source. Hasta el momento solo han sido
liberadas tres versiones principales, teniendo cada una de ellas diversas actualizaciones.
A diferencia de otros lenguajes como java o NET, se trata de un lenguaje interpretado, es
decir, que no es necesario compilarlo para ejecutar las aplicaciones escritas en Python,
sino que se ejecutan directamente por el ordenador utilizando un programa denominado
interpretador, por lo que no es necesario “traducirlo” a lenguaje de máquina.

LIBRERIAS DE PYTHON

PYGAME: Sin duda la librería más famosa de Python. Pygame lleva en desarrollo desde
el 2001 por lo que tiene una gran comunidad, publicándose en su propia página web gran
cantidad de juegos y demos con más de 1.000 proyecto registrados. Es multiplataforma a
la perfección y la librería que menos problemas da al portar entre Linux/Windows/Mac,
y es famosa por su facilidad de programación. Utiliza una librería de C llamada SDL,
librería en la que están escritos los juegos 2d más famosos en Linux como Battle for
Wesnoth, SuperTux o StepMania.

PYOPENGL: Hablando de Pygame, esta tiene un fallo, y es que no soporta Aceleración


gráfica al basarse en SDL. Aquí entra en juego PyOpenGL, un binding de OpenGL que
se puede combinar con Pygame para añadir las funciones que a este le faltan. Eso sí,
requiere un nivel de conocimiento de programación de videojuegos más alto, al ser una
capa de abstracción mayor. Para quien no conozca OpenGL, es la competencia de DirectX
en el mundo del software Libre, y todos los juegos 3d libres y muchos cerrados corren
sobre ella incluidos juegos de Blizzard y Valve.

PYGLET: Pyglet es la alternativa a Pygame+PyOpenGL permitiendo aceleración gráfica


y trabajar en 2d/3d, todo ello en una sola librería, y sin tener que recurrir a la engorrosa
dificultad de PyOpenGL. Eso sí, sacrificando algunas utilidades avanzadas de pyopengl,
y siendo un poco más difícil de usar que Pygame. Pyglet es una librería con un desarrollo
actual más rápido que pygame, que cada día gana más adeptos. En realidad, Pyglet utiliza
OpenGL en gran parte de sus funciones, pero facilitando su uso.

PANDA3D: Librería libre centrada en videojuegos 3D escrita para Python y C++. Es una
librería orientada a 3D, y por lo tanto no apta para iniciados. Algunos juegos de Disney
han usado esta librería.

PYMUNK: Librería especializada en crear físicas 2D, como polígonos, colisiones, etc.
Está basada en la famosa librería chipmunk, de la que podéis ver este video de
demostración.
COCOS2D: Este framework es una extensión de Pyglet que añade gran cantidad de
efectos, rotar y manipular sprites, transiciones entre escenas con estilos, etc. Combinando
Pyglet+Cocos2d se pueden realizar juegos de gran calidad.

PYOGRE: Binding para python de Ogre, un popular motor de renderizado 3D en C++


con una activa comunidad. Debe complementarse con otras librerías 3D como
PyOpenGL.

OS: El módulo Os en Python proporciona y expone los detalles y la funcionalidad del


sistema operativo.

Proporcionan funcionalidad independiente del sistema operativo.

Podemos usar el módulo Os importando a través del siguiente comando.

Inport Os.

En conclusión, hemos llegado a utilizar las siguientes librerías:

• PYGAME
• OS

VISUAL STUDIO CODE

Visual Studio Code es un editor de código fuente desarrollado por Microsoft para
Windows, Linux y macOS. Es un editor super rápido y liviano que se puede usar para
ver, editar, ejecutar y depurar código fuente para aplicaciones. Es utilizado
principalmente por desarrolladores Front-end. Visual Studio Code es un producto
completamente diferente en comparación con Visual Studio.
DESARROLLO DEL JUEGO

Primero Abrimos el programa Visual Studio Code.

Segundo Descargamos Python en Visual Studio Code.


Una vez descargado el Python también, necesitamos descargar la librería Pygame, para
lo ello abrimos el terminal.

Y simplemente escribimos (pip3 install pygame) y se te va a instalar Pygame.

DESPUÉS DE HABER HECHO ESO YA ESTAMOS LISTOS PARA CREAR EL


VIDEO JUEGO.

PASO 1.

Creamos una carpeta general para todo el proyecto en esta carpeta guardo el fichero de
main.py es donde vamos a desarrollar nuestro programa y otra
carpeta que se llama assets, en esta carpeta gurdo sonidos e imágenes que vamos a utilizar
en el video juego
PASO 2. En el fichero main escribimos los códigos.

Es lo que sería la estructura básica del programa y lo explicamos paso a paso.


2.1. Lo primero que hacemos es incluir las dos librerías que vamos a utilizar que es
pygame y os.

2.2. Creamos dos variables WIDTH y HEIGHT que guardan la anchura y la altura de
la pantalla del jugo que son 900px y 500px.

2.2.1. Después creamos la pantalla de juego. Lo guardamos en una variable que se


llama WIN y se hace con el siguiente método pygame.display.sed_mode y
le tienes que pasar la altura y el ancho.

2.2.1.1.Y le ponemos como título SPACE BATTLE (tú los puedes poner el que
quieras)

2.2.1.2.Creamos cuatro variables que básicamente son colores están en forma.


TORGB es decir:

Primero el rojo que es de 255. Donde 0 es el mínimo y 255 es el máximo


después el verde, después el azul, los cuatro colores que he creado son:
WHITE, BLACK, RED y YELLOW (blanco, el negro, el rojo y el
amarillo).
PASO 3. Creamos una variable que se llama FPS (fotogramas por segundo) que guarda
un 60 Son los fotogramas por segundo a lo que se va a ejecutar el
juego.
3.1.Tenemos la función principal. La función principal es: crea un reloj. Creamos una
variable que la idealizamos.

3.1.1. Y tenemos un bucle infinito. En este bucle infinito primero llamamos al reloj

que creamos antes y ejecutamos la función este bucle va a ejecutar todo el


rato (60 veces por segundo).

3.1.2. Tenemos el bucle FOR que recorre una lista de eventos y ¿cómo recibimos
esa lista de eventos? debemos llamar a la función pygame.even.get.

y eso te devuelve una lista de eventos, que básicamente guarda eventos


(cunado pulses una tecla, pulses un ratón y q le des a cerrar juego todo eso
es un evento), también hago llamado a la función QUIT para q termine el
bucle del juego. Llámanos a la función main otra vez.
Para, que si uno de los jugadores gane el juego seguirá.

Ahora que ya tenemos la estructura echa, vamos a ejecutar llamando a Python3.

main.py.

Como vemos nos ejecuta, está el nombre, minimizar y cerrar.


PASO 4. vamos a cambiar la imagen de fondo.
4.1.Primero debemos cargar la imagen y lo hacemos de la siguiente manera:

Llamamos a la función “SPACE = pygame.imagen,load(“”)”a esta función le como


un parámetro la dirección en la que se encuentra tu imagen dentro de tu ordenador
para ello utilizamos la función “os.path.join”, que es de la librería os, los parámetros
que debemos pasarles es el nombre de tu carpeta donde guarda las imágenes que están
dentro de la carpeta general de tu proyecto(en este caso sería assets) y el nombre de
la imagen(que se llama space.png) y a todo eso le vamos a llamar a otra función que
es “pygame.transform.scale”(sirve para cambiar el tamaño de la imagen y ponerle el
tamaño de la pantalla de juego que lo tenemos guardo en las variables WIDTH Y
HEIGTH). con esto ya habremos cargado la imagen de fondo.

4.2.Ahora dibujamos.
4.2.1. Creamos una función que se llame “draw Windows”en la que básicamente
dibujamos todo sobre el juego tanto como el fondo de pantalla y las
imágenes de juego, las balas, entre otros.
4.2.1.1.Entonces para dibujar algo, ponemos del nombre de la variable que en
este caso se llama “WIN.BLIT” son la función con las que dibujamos.
4.2.1.2.Los parámetros que necesitamos son, la imagen que quieres dibujar y
la posición en la que quieres dibujar la imagen (esta es la parte sencilla
ya que la posición es 0,0).

NOTA: cuando vallamos a dibujar cosas algo debemos tener en


cuenta que el sistema de coordenadas de pygame que la X aumenta Asia la
derecha y la Y aumenta Asia abajo.
4.2.1.3.Para terminar esta parte, llamamos a la función
“pygame.display.update”(es para actualizar la pantalla de juego y se
vea lo nuevo que as dibujado).

, con esto ya dibujamos el fondo de pantalla.


4.2.1.4.ahora solo llamamos ala funcion “draw_windows” dentro de nuestras
funciones principales que es dentro de bucle WHILE y fuera de bucle
FOR.
Ahora ejecutamos.

Podemos ver que ya no nos aparece el mismo fondo de pantalla y esta este
fondo que es mucho mas bonito que antes.

PASO 5. creamos las naves espaciales.


5.1.creamos dos variables, que son para guardar el tamaño, 90px de ancho y 70px de
alto.

5.2.cargamos las imágenes, las escalamos para que tengan el tamaño correspondiente
y las dibujamos.

NOTA: las e dibujado después de dibujar el fondo de pantalla.


Ejecutamos el programa y vemos que nos aparecen las naves de color rojo y amarilla.

La posición fue aleatoria, pero la puse de lado rojo (600,200) la de amarilla (200,200).

PASO 6. Ahora movemos las naves espaciales. Para ello necesitamos crear dos
rectángulos para cada nave espacial (las balas también van a ser un rectángulo)

6.1. Creamos dos rectángulos que representan dos naves espaciales (cuando movamos
las dos naves espaciales estaremos moviendo dichos rectángulos)

6.2.Usamos la función pygame.red (es para crear un rectángulo) y los únicos


parámetros que le pasamos a la función es la posición inicial de rectángulo que
para la nave espacial roja es la 700, para la amarilla es la 300 y el tamaño del
rectángulo que es el mimo que el de las naves espaciales (si lo guardamos en
SPACEHIP_WIDTH que es el ancho y SPACEHIP_HEIGHT que es la altura).

6.3.Antes de continuar los movimientos de las naves espacieles . nesesitamos crear el


borde que separa el mapa, en dos mapa y tambien va ser un rectangulo lo creamos
fuera de la funcion main (lo cremos al principio junto con las cosntantes) por que
tambien va ser una constante ponemos la siguente funcion:

Una vez creado tenemos q tener la funcion DRAW dibujado de esta manera:

(esta la pantalla que hemos dibujado, el color que quiero que tenga que es negro
y por ultimo que es el rectangulo)

Ejecutamos el programa
podemos ver el borde que esta dibujado en el medio del mapa, de esta forma el mapa
queda dividido en dos y cuando hagamos los movimientos de las naves espaciales
vamos a hacerlo de tal manera que una nave espacial no puede pasarse al campo de la
otra nave espacial y viceversa.

6.4.Continuamos con el movimiento de las naves espaciales.


6.4.1. Lo primero que necesitamos saber es que teclas se han pulsado utilizamos
la función pygame.key.get_pres. lo que vamos a hacer es utilizar las teclas
A.S.D.W para mover la nave amarilla, y la flechas para mover la nave
espacial roja.
Entonces de pues de llamar a esta lista de todas las teclas que sean pulsado
llamamos a la función key_pressed = pygame.key.get_pressed() (para mover
la nave espacial amarilla y las flechas para el rojo) llamamos a la función
yellow_handle_movement(key_pressed, yellow) (lo que hace esta función
es mover la nave amarilla .antes de crear la función del rojo creamos una
variable VEL que guarda la velocidad con la que se va a mover la nave
espacial.

Ahora si creamos, yellow_handle_movement(key_pressed, yellow). los


parámetros que tenemos son: las teclas pulsadas y el rectángulo. entonces
comprobamos si una tecla pulsada es la que es a se guarda en pygame,
también el movimiento espacial que es moverse así a la izquierda si nos
movemos mucho nos podríamos salir del mapa, por eso compruebo que vel
sea> que 0 significara que, aunque nos movamos ala izquierda seguiremos
dentro del mapa y si seguimos dentro del mapa le restamos menos 5px y para
los temas teclas te dejo aquí lo códigos:

Del AMARILLO(YELLOW)
DEL ROJO (RED):

NOTA: los signos + y – son para aumentar o quitar los px para que la nave no se
salga.

Ejecutamos el código: vemos que se mueve, tambien que no se sale ni por ariba ni por
abajo y que se puede mover en todas las direcciones

PASO 7. Las naves deven disparar.

7.1.Para disparar con la nave amarilla vamos a u utilizar a tecla CTRL de la parte
izquierda del teclado y para dispar con la nave roja vamos a untilizar la tecla
CTRL de la derecha- que esta en el teclado , ademas vamos a poner que cada nave
pueda disparar 3 balas ala ves
7.1.1. Para ello creamos una variable que se llame que
guarda el numero de balas maximo, depues de crear esa variable nos
vamos a la funcion main y creamos dos listas q van hacer para las balas de
la nave espacial roja y otra para la amarilla son estos codigos:

Después en el bucle for donde los eventos y escribimos este código.

Para la nave de color amarilla (esta las Balas, el tamaño y la ubicación para cual lado debe
disparar).

Esta es del rojo. (esta las Balas, el tamaño y la ubicación para cual lado debe disparar).

Ahora que creamos las balas solo falta moverlas y dibujarlas creamos una variable que se
llame
Después de crear esa variable creamos una Función que se llamamos:

Después de la función vamos a crear listas empezamos por la amarilla

Ahora con las del rojo hacemos lo mismo.

7.1.2. Ahora vamos a la función main y escribimos el siguiente código

y por último modificamos la función draw_windows (para dibujar las


balas).

entonces tenemos que pasarlo 2 parámetros mas ¿y cuáles son? Son las
listas que guardan las balas que son: red_bullets y yellow_bullets.
7.1.3. Ahora subimos donde esta implementada la función draw_windows

y recorremos las dos listas de balas.


7.1.3.1.Primero empezamos con de las balas rojas y la recorremos de la
siguiente manera:
Después hacemos lo mismo con el amarillo

ahora con eso si ejecutamos el programa


vemos que las naves son capaces de disparar las 3 balas a la vez.

PASO 8. Ponerles vida a las naves espaciales y que la vida se muestre en pantalla.

8.1.Primero inicializar el módulo fon de pygame que nos sirve para crear textos y
después dibujarlos, para inicializarlo llamamos a la función con eso ya se
inicializa.

8.2.Creamos un tipo de texto es lo que vamos a utilizar para


dibujar la vida en la pantalla y lo creamos de la siguiente manera:

NOTA: Si no lo sabias en pygame se puede crear propios eventos, igual como los eventos
que pulsamos la X para cerrar la pantalla o que se pulsara alguna tecla. Pues también
podemos crear nuestros propios eventos ¿cómo? Pues con la función
pygame.USEREVENT.
8.2.1. Creamos dos eventos
8.2.1.1.Para cuando la nave amarilla fuera golpeada.
8.2.1.2. Para cuando la nave roja fuera golpeada.
8.2.2. Entonces ponemos el siguiente código en la parte de los fotogramas

. El +1 y +2 es para que pygame diferencie los eventos, para que lleven un


identificador y al sumarle un 1 y al sumarlo un 2 el identificador será
diferente. Después de crear los dos eventos tenemos que llamarlo, dentro
de la función handle_bullets ponemos el código

ahora lo hacemos con la nave amarilla

En la función main creamos dos variables.

8.3.La vida de la nave roja.


8.4.La vida de la nave amarilla

Ambas vidas son 10 (si tú quieres ponerle más vida no pasa nada).

Dentro del bucle whil y dentro del for vemos los eventos que sean producido.

Ponemos los siguente: es el evento que nostros hemos creado, “es decir que esto dentro
del juego se cumple y que la nave roja asido golpada por eso le restamos 1”.

Si el evento es del color amarillo ,( si la nave amarilla asido golpeda)

ya tenemos vida para las naves y le restamos uno si lo golpea la bala.


8.4.1. ahora vamos adibujar la vida en pantalla en la funcion draw _windows
poenemos los siguientes codigos. con esos codigos guardamos el texto,
tambien el color de texto y lo que guarda las vidas.

Con eso ya creamos las vidas de las naves y que se vean en pantalla.

Ahora lo ejecutamos:

vemos que esta la vida y que tambien cuando las balas chocan con las naves se bajan vida.
Pero lo que no nos dice es, quien es ganador.

8.5.ahora mostraremos quie es el ganador, para ello nos vamos al bucle while y
creamos la variable que se llama winner_tex = “” que la inicializamos vacia
comprovamos si la vida es menor que cero del siguente modo
en caso de que uno de los dos llegue a cero habra ganado la otra nave ponemos el siguente

codigo para lo ello.

en la parte de los movimientos creamos una nueva funcion que se llama draw_winner le
pasamos un text (que seria el texto)

esta el color de la pantalla y algunas variables ue guaradan el texto, tambien la


actualizacion de pantalla. Tenmos la funcion main que es para que vuelvas a jugar

PASO 9. Creamos el sonido o ponemos el sonido(pero antes que eso llamanos ala funcion

depues de inicializar el modulo aque cargar los sonidos ponemos la siguente funcion

asi esta la carpeta donde se guarda todos los sonidos que lo tengo.
• El primero es cuando una bala choque con la nave.
• El segundo es de cuando la nave dispare.
Ahora ejecutamos el programa.

SPACE BATTLE
CONCLUCIÓN

Al finalizar este proyecto y repasar los objetivos iniciales puedo afirmar que la mayor
parte de ellos se ha cumplido satisfactoriamente. De hecho, el resultado se asemeja en
gran medida a la idea concebida en un principio. El desarrollo del videojuego, en el cual
puedan jugar dos personas.

Primeramente, aprendimos lo que es un poco de las librerías de PYTHON, dentro de las


muchas que existen pudimos usar solo dos de ellas.

También usando esas dos librerías y diversos códigos pudimos crear el juego SPACE
BATLE, en el que dos jugadores podrán divertirse.
RECOMENDACIONES
La práctica de los videojuegos puede traer consigo muchos beneficios, la concepción
moderna del videojuego es la integración con la sociedad, por lo que se debe ver como
una herramienta más y no como una distracción.
BIBLIOGRAFIA
Módulo de Python os (cosmiclearn.com)
¿Qué es Python? | Blog Becas Santander (becas-santander.com)
https://recluit.com/historia-de-un-joven-lenguaje-de-programacion-python/#.Y4-
20HbMLIU
https://elbauldelprogramador.com/programando-videojuegos-en-python/

También podría gustarte