SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Informe práctica
VIDEOJUEGO PING-PONG
VERSIONADO
Grupo 16
Ana García Saiz
Yohanna Díaz Flores
Diseño de Sistemas Electrónicos
Grado en Ingeniería en Tecnologías Industriales
Universidad Rey Juan Carlos
Curso 2015/2016
Índice
1. Responsabilidad de los miembros del grupo ............................................................................ 1
2. Desarrollo del videojuego Ping-Pong versionado ..................................................................... 1
2.1. Introducción ....................................................................................................................... 1
2.2. Botones, switches y displays empleados ........................................................................... 2
2.2.1. Movimiento de los jugadores...................................................................................... 2
2.2.2. Transcurso de la partida.............................................................................................. 3
2.3. Diseño del videojuego........................................................................................................ 5
2.3.1. Diseño estructural....................................................................................................... 5
2.3.2. Diagrama de bloques del módulo Interfaz_pb............................................................ 6
2.3.2. Diagrama de bloques del módulo Fondo.................................................................... 7
2.4. Problemas encontrados y resolución............................................................................... 10
2.5. Mejoras implementadas .................................................................................................. 10
2.6. Enlace al video de PING-PONG versionado………………………………………………………………….11
1
1. Responsabilidad de los miembros del grupo
El trabajo se ha repartido conjunta y equilibradamente entre las dos. Todos los problemas
solventados y las mejoras conseguidas han sido fruto del esfuerzo y la participación activa de
ambas.
2. Desarrollo del videojuego Ping-Pong versionado
2.1. Introducción
Se trata de un videojuego cuyo objetivo y forma de jugar son análogos a los del Ping-Pong
original.
Esta versión, en concreto, incluye como mejoras:
- La opción de iniciar la partida a través de un switch.
- La existencia de dos porterías.
- La posibilidad de jugar a dos velocidades distintas: “lento” y “rápido”, rótulos que,
además, aparecen en los displays de 7 segmentos.
Dichas mejoras se detallarán en el apartado 2.5.
2
2.2. Botones, switches y displays empleados
2.2.1. Movimiento de los jugadores
Botones
 rst: se reinicia el videojuego.
 pb_1: si se pulsa, el jugador de la izquierda sube.
 pb_2: si se pulsa, el jugador de la izquierda baja.
 pb_3: si se pulsa, el jugador de la derecha sube.
 pb_4: si se pulsa, el jugador de la derecha baja.
3
2.2.2. Transcurso de la partida
Switches
 sw: cuando se pone a ‘1’ comienza la partida, es decir, la pelota inicia su movimiento
desde su posición inicial. Si está a ‘0’, el juego no se reiniciará automáticamente tras
encajar un gol y la pelota permanecerá parada en el centro del campo hasta que
sw=’1’.
 sw2: si está a ‘0’ el modo de juego es “lento” y si está a ‘1’ el modo de juego es
“rápido”.
Displays de 7 segmentos
En ellos aparece la palabra “lento” o “rápido” en función del modo de juego.
Modo de juego “lento”
4
Modo de juego “rápido”
5
2.3. Diseño del videojuego
2.3.1. Diseño estructural
En los apartados que vienen a continuación se describen los procesos implicados en los
módulos Interfaz_pb y Fondo, a través de diagramas de bloques y su explicación
correspondiente. El módulo Sincro_vga no se detalla como los anteriores porque ya está
comentado en el manual.
6
2.3.2. Diagrama de bloques del módulo Interfaz_pb
P_botones
Este proceso hace que los jugadores suban o bajen en función del botón que se pulse. Pb_1
hace que suba el jugador de la izquierda y pb_2 hace que baje. Para el jugador de la derecha,
si se pulsa pb_3 este se mueve hacia arriba y si se presiona pb_4 se desplaza hacia abajo.
7
2.3.2. Diagrama de bloques del módulo Fondo1
1
El bloque P_pelota es una máquina de estados que engloba tres procesos: el combinacional de
estados, el secuencial y el combinacional de salidas. Estos tres procesos no se detallan en bloques
independientes porque su inclusión complicaría en exceso el diagrama.
8
P_control_pelota (nivel lento)
Este proceso genera la señal s1_pelota que se activa cada 0,02s. Como puede verse en el
videojuego, la pelota se mueve bastante despacio, por eso estamos en el nivel “lento”. Para
elegir este modo de juego, se debe poner el sw2 a ‘0’.
P_control_pelota_2 (nivel rápido)
Idéntico al proceso anterior, con la diferencia que ahora la señal s1_pelota_2 se activa cada
0,01s. La pelota se mueve, entonces, más deprisa porque estamos en el nivel “rápido”. Para
elegir este modo de juego, se debe poner el sw2 a ‘1’.
P_movimiento_pelota
Este proceso genera el movimiento de la pelota, definido por las señales filapel y colpel. Su
dirección depende de las señales señal_SO, señal_SE,… generadas en la máquina de estados,
así como de s1_pelota o s1_pelota_2, dependiendo de si estamos en el nivel lento o rápido.
P_rebote
Este proceso genera las señales tope_jug1 y tope_jug2 que se ponen a ‘1’ cuando la pelota
rebota contra el jugador de la izquierda o el de la derecha, respectivamente. Las entradas, por
tanto, son colpel, filapel, filajug, filajug2.
P_controljug
Este proceso genera la señal s1_control que se activa cada 5 ms. Permite ver el movimiento de
los jugadores.
P_botones1
Este proceso permite mover hacia arriba o hacia abajo el jugador de la izquierda, cuando las
señales jugizq_sube o jugizq_baja (procedentes del módulo Interfaz_pb) se ponen a ‘1’. Por
supuesto, s1_control también debe estar activa y la salida es filajug.
P_botones2
Similar al anterior, con la diferencia de que en este caso el jugador que se mueve es el de la
derecha. Las señales que entran son s1_control, jugde_sube y jugde_baja. La salida es filajug2.
P_pelota
Incluye los procesos P_comb_pelota, P_sec_pelota y P_com_pelota_salidas.
Los estados son NO, NE, SE, SO, gol1 y gol2. Los cuatro primeros se corresponden con las
direcciones noroeste, noreste, sureste y suroeste que puede seguir la pelota. Gol1 y gol2 son
los estados en los que se encuentra la pelota cuando el jugador de la izquierda ha encajado un
gol o cuando lo ha hecho el jugador de la derecha.
9
 P_comb_pelota
Este proceso obtiene el estado siguiente a partir del actual. Las entradas a este proceso
son:
- Tope_jug1,tope_jug2: cuando se ponen a ‘1’ significa que la pelota rebota con el
jugador de la izquierda o de la derecha, respectivamente.
- rebote_izq,rebote_dcha, tope_arriba, tope_abajo: se activan en el momento en el que
la pelota choca contra el borde izquierdo, derecho, superior e inferior,
respectivamente.
- tope_izq, tope_dcha: se ponen a ‘1’ cuando el jugador de la izquierda recibe un gol o
cuando lo hace el de la derecha.
- sw: debe estar a ‘1’ para que la pelota comienza a moverse tras encajar un tanto. Si
está a ‘0’, después de marcar un gol, el juego no se reiniciará automáticamente, es
decir, la pelota permanecerá parada en el centro del campo hasta que sw=’1’.
 P_sec_pelota
Este proceso guarda el estado actual.
 P_com_pelota_salidas
La señal de entrada es sw2: si está a ‘0’el modo de juego es “lento” y si está a ‘1’ el modo
de juego es “rápido”. En función de esta señal cambiará la velocidad de la pelota y la
palabra que aparece en los displays.
Este proceso obtiene como salidas:
- an: enciende los ánodos de los displays.
- seg: ilumina los segmentos necesarios en función de las palabra que se desee mostrar.
- señal_gol1, señal_gol2: se ponen a ‘1’ cuando el jugador izquierdo ha recibido un gol o
bien cuando lo ha hecho el jugador de la derecha.
- señal_SO, señal_SE, señal_NO, señal_NE: se activan para que la pelota siga las
direcciones suroeste, sureste, noroeste y noreste, respectivamente.
P_pinta_fondo
Este proceso pinta el videojuego en la pantalla.
Las señales de entrada son:
- Visible: si está a ‘1’ significa que estamos en los píxeles visibles.
- Pxl_num: indica el número de columna.
- Line_num: indica el número de fila.
Los puertos de salida son:
- Green.
- Red.
- Blue.
10
2.4. Problemas encontrados y resolución
Hemos encontrado dos problemas en la realización del videojuego. El primer problema
encontrado fue el siguiente: al añadir el estado de “gol” en la máquina de estados para que al
anotar un gol al jugador izquierda o derecha la pelota volviera a la posición inicial, solo se
anotaban goles en el lado izquierdo, mientras que en el lado derecho la pelota rebotaba en el
borde.
Resolución: Añadimos un segundo estado llamado “gol2”, de esta forma se anotan goles a
ambos lados del campo.
El segundo problema que encontramos fue que la pelota al chocar con la esquina de alguno de
los dos jugadores, traspasaba al jugador y no rebotaba. Hemos solucionado este problema
cambiando los “límites” del tope_jug1 y tope_jug2 y de esta forma, la pelota rebota también
en las esquinas de cada jugador.
2.5. Mejoras implementadas
Como se ha mencionado antes, en esta versión del videojuego se han implementado tres
mejoras:
1. Por medio de un switch, se inicia y se para el juego. El videojuego se inicia con la
pelota en el centro del campo. Si el switch está a ‘1’, la pelota se moverá y los
jugadores podrán moverse y jugar. Si el switch está a ‘0’, la pelota permanece inmóvil
en el centro del campo (posición inicial). Si se quiere parar el juego, se pone el switch a
‘0’ y después de que se haya anotado el gol, la pelota volverá al centro del campo y no
se moverá hasta que el switch vuelva a estar a ‘1’.
2. Existen dos porterías. Solo se considera que se ha anotado un gol, cuando la pelota
entra alguna de las porterías. Primero, la hemos definido con un ancho de 20 píxeles y
ocupa la tercera parte del borde vertical del campo. Después de pintarlas, hemos
añadido dos señales de rebote_izq y rebote_dcha que definen la parte del campo
fuera de la portería, de esta forma la pelota rebotará esas zonas. Las señales tope_izq
y tope_dcha se utilizarán para definir los bordes de la portería e indican que se ha
anotado un gol.
3. Se puede jugar a dos velocidades distintas: lento y rápido. Esta mejora la hemos
realizado añadiendo otro contador para la pelota. El primer contador es de 20ms y se
corresponde al nivel lento. El segundo contador, para el nivel rápido, es de 10ms.
Además, con la ayuda de un segundo switch, se podrá cambiar la velocidad de la
pelota. Si el switch está a ‘1’ la velocidad de la pelota aumenta, y aparece la palabra
“rápido” en los displays de 7 segmentos. Por otra parte, si el switch está a ‘0’, la
velocidad de la pelota disminuye y aparece la palabra “lento” en los displays.
11
2.5. Enlace al video de PING-PONG versionado
Enlace Dropbox:
https://www.dropbox.com/s/8e9v8voieurudb9/InShot_20160520_154410.mp4?dl=0

Más contenido relacionado

Último

INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 

Último (20)

ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Presentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptxPresentación Instrumentos de Medicion Electricos.pptx
Presentación Instrumentos de Medicion Electricos.pptx
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdfDISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
DISEÑO PAVIMENTOS CLASE 06 PAVIMENTOS.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Videojuego Ping-Pong versionado en VHDL

  • 1. Informe práctica VIDEOJUEGO PING-PONG VERSIONADO Grupo 16 Ana García Saiz Yohanna Díaz Flores Diseño de Sistemas Electrónicos Grado en Ingeniería en Tecnologías Industriales Universidad Rey Juan Carlos Curso 2015/2016
  • 2. Índice 1. Responsabilidad de los miembros del grupo ............................................................................ 1 2. Desarrollo del videojuego Ping-Pong versionado ..................................................................... 1 2.1. Introducción ....................................................................................................................... 1 2.2. Botones, switches y displays empleados ........................................................................... 2 2.2.1. Movimiento de los jugadores...................................................................................... 2 2.2.2. Transcurso de la partida.............................................................................................. 3 2.3. Diseño del videojuego........................................................................................................ 5 2.3.1. Diseño estructural....................................................................................................... 5 2.3.2. Diagrama de bloques del módulo Interfaz_pb............................................................ 6 2.3.2. Diagrama de bloques del módulo Fondo.................................................................... 7 2.4. Problemas encontrados y resolución............................................................................... 10 2.5. Mejoras implementadas .................................................................................................. 10 2.6. Enlace al video de PING-PONG versionado………………………………………………………………….11
  • 3. 1 1. Responsabilidad de los miembros del grupo El trabajo se ha repartido conjunta y equilibradamente entre las dos. Todos los problemas solventados y las mejoras conseguidas han sido fruto del esfuerzo y la participación activa de ambas. 2. Desarrollo del videojuego Ping-Pong versionado 2.1. Introducción Se trata de un videojuego cuyo objetivo y forma de jugar son análogos a los del Ping-Pong original. Esta versión, en concreto, incluye como mejoras: - La opción de iniciar la partida a través de un switch. - La existencia de dos porterías. - La posibilidad de jugar a dos velocidades distintas: “lento” y “rápido”, rótulos que, además, aparecen en los displays de 7 segmentos. Dichas mejoras se detallarán en el apartado 2.5.
  • 4. 2 2.2. Botones, switches y displays empleados 2.2.1. Movimiento de los jugadores Botones  rst: se reinicia el videojuego.  pb_1: si se pulsa, el jugador de la izquierda sube.  pb_2: si se pulsa, el jugador de la izquierda baja.  pb_3: si se pulsa, el jugador de la derecha sube.  pb_4: si se pulsa, el jugador de la derecha baja.
  • 5. 3 2.2.2. Transcurso de la partida Switches  sw: cuando se pone a ‘1’ comienza la partida, es decir, la pelota inicia su movimiento desde su posición inicial. Si está a ‘0’, el juego no se reiniciará automáticamente tras encajar un gol y la pelota permanecerá parada en el centro del campo hasta que sw=’1’.  sw2: si está a ‘0’ el modo de juego es “lento” y si está a ‘1’ el modo de juego es “rápido”. Displays de 7 segmentos En ellos aparece la palabra “lento” o “rápido” en función del modo de juego. Modo de juego “lento”
  • 6. 4 Modo de juego “rápido”
  • 7. 5 2.3. Diseño del videojuego 2.3.1. Diseño estructural En los apartados que vienen a continuación se describen los procesos implicados en los módulos Interfaz_pb y Fondo, a través de diagramas de bloques y su explicación correspondiente. El módulo Sincro_vga no se detalla como los anteriores porque ya está comentado en el manual.
  • 8. 6 2.3.2. Diagrama de bloques del módulo Interfaz_pb P_botones Este proceso hace que los jugadores suban o bajen en función del botón que se pulse. Pb_1 hace que suba el jugador de la izquierda y pb_2 hace que baje. Para el jugador de la derecha, si se pulsa pb_3 este se mueve hacia arriba y si se presiona pb_4 se desplaza hacia abajo.
  • 9. 7 2.3.2. Diagrama de bloques del módulo Fondo1 1 El bloque P_pelota es una máquina de estados que engloba tres procesos: el combinacional de estados, el secuencial y el combinacional de salidas. Estos tres procesos no se detallan en bloques independientes porque su inclusión complicaría en exceso el diagrama.
  • 10. 8 P_control_pelota (nivel lento) Este proceso genera la señal s1_pelota que se activa cada 0,02s. Como puede verse en el videojuego, la pelota se mueve bastante despacio, por eso estamos en el nivel “lento”. Para elegir este modo de juego, se debe poner el sw2 a ‘0’. P_control_pelota_2 (nivel rápido) Idéntico al proceso anterior, con la diferencia que ahora la señal s1_pelota_2 se activa cada 0,01s. La pelota se mueve, entonces, más deprisa porque estamos en el nivel “rápido”. Para elegir este modo de juego, se debe poner el sw2 a ‘1’. P_movimiento_pelota Este proceso genera el movimiento de la pelota, definido por las señales filapel y colpel. Su dirección depende de las señales señal_SO, señal_SE,… generadas en la máquina de estados, así como de s1_pelota o s1_pelota_2, dependiendo de si estamos en el nivel lento o rápido. P_rebote Este proceso genera las señales tope_jug1 y tope_jug2 que se ponen a ‘1’ cuando la pelota rebota contra el jugador de la izquierda o el de la derecha, respectivamente. Las entradas, por tanto, son colpel, filapel, filajug, filajug2. P_controljug Este proceso genera la señal s1_control que se activa cada 5 ms. Permite ver el movimiento de los jugadores. P_botones1 Este proceso permite mover hacia arriba o hacia abajo el jugador de la izquierda, cuando las señales jugizq_sube o jugizq_baja (procedentes del módulo Interfaz_pb) se ponen a ‘1’. Por supuesto, s1_control también debe estar activa y la salida es filajug. P_botones2 Similar al anterior, con la diferencia de que en este caso el jugador que se mueve es el de la derecha. Las señales que entran son s1_control, jugde_sube y jugde_baja. La salida es filajug2. P_pelota Incluye los procesos P_comb_pelota, P_sec_pelota y P_com_pelota_salidas. Los estados son NO, NE, SE, SO, gol1 y gol2. Los cuatro primeros se corresponden con las direcciones noroeste, noreste, sureste y suroeste que puede seguir la pelota. Gol1 y gol2 son los estados en los que se encuentra la pelota cuando el jugador de la izquierda ha encajado un gol o cuando lo ha hecho el jugador de la derecha.
  • 11. 9  P_comb_pelota Este proceso obtiene el estado siguiente a partir del actual. Las entradas a este proceso son: - Tope_jug1,tope_jug2: cuando se ponen a ‘1’ significa que la pelota rebota con el jugador de la izquierda o de la derecha, respectivamente. - rebote_izq,rebote_dcha, tope_arriba, tope_abajo: se activan en el momento en el que la pelota choca contra el borde izquierdo, derecho, superior e inferior, respectivamente. - tope_izq, tope_dcha: se ponen a ‘1’ cuando el jugador de la izquierda recibe un gol o cuando lo hace el de la derecha. - sw: debe estar a ‘1’ para que la pelota comienza a moverse tras encajar un tanto. Si está a ‘0’, después de marcar un gol, el juego no se reiniciará automáticamente, es decir, la pelota permanecerá parada en el centro del campo hasta que sw=’1’.  P_sec_pelota Este proceso guarda el estado actual.  P_com_pelota_salidas La señal de entrada es sw2: si está a ‘0’el modo de juego es “lento” y si está a ‘1’ el modo de juego es “rápido”. En función de esta señal cambiará la velocidad de la pelota y la palabra que aparece en los displays. Este proceso obtiene como salidas: - an: enciende los ánodos de los displays. - seg: ilumina los segmentos necesarios en función de las palabra que se desee mostrar. - señal_gol1, señal_gol2: se ponen a ‘1’ cuando el jugador izquierdo ha recibido un gol o bien cuando lo ha hecho el jugador de la derecha. - señal_SO, señal_SE, señal_NO, señal_NE: se activan para que la pelota siga las direcciones suroeste, sureste, noroeste y noreste, respectivamente. P_pinta_fondo Este proceso pinta el videojuego en la pantalla. Las señales de entrada son: - Visible: si está a ‘1’ significa que estamos en los píxeles visibles. - Pxl_num: indica el número de columna. - Line_num: indica el número de fila. Los puertos de salida son: - Green. - Red. - Blue.
  • 12. 10 2.4. Problemas encontrados y resolución Hemos encontrado dos problemas en la realización del videojuego. El primer problema encontrado fue el siguiente: al añadir el estado de “gol” en la máquina de estados para que al anotar un gol al jugador izquierda o derecha la pelota volviera a la posición inicial, solo se anotaban goles en el lado izquierdo, mientras que en el lado derecho la pelota rebotaba en el borde. Resolución: Añadimos un segundo estado llamado “gol2”, de esta forma se anotan goles a ambos lados del campo. El segundo problema que encontramos fue que la pelota al chocar con la esquina de alguno de los dos jugadores, traspasaba al jugador y no rebotaba. Hemos solucionado este problema cambiando los “límites” del tope_jug1 y tope_jug2 y de esta forma, la pelota rebota también en las esquinas de cada jugador. 2.5. Mejoras implementadas Como se ha mencionado antes, en esta versión del videojuego se han implementado tres mejoras: 1. Por medio de un switch, se inicia y se para el juego. El videojuego se inicia con la pelota en el centro del campo. Si el switch está a ‘1’, la pelota se moverá y los jugadores podrán moverse y jugar. Si el switch está a ‘0’, la pelota permanece inmóvil en el centro del campo (posición inicial). Si se quiere parar el juego, se pone el switch a ‘0’ y después de que se haya anotado el gol, la pelota volverá al centro del campo y no se moverá hasta que el switch vuelva a estar a ‘1’. 2. Existen dos porterías. Solo se considera que se ha anotado un gol, cuando la pelota entra alguna de las porterías. Primero, la hemos definido con un ancho de 20 píxeles y ocupa la tercera parte del borde vertical del campo. Después de pintarlas, hemos añadido dos señales de rebote_izq y rebote_dcha que definen la parte del campo fuera de la portería, de esta forma la pelota rebotará esas zonas. Las señales tope_izq y tope_dcha se utilizarán para definir los bordes de la portería e indican que se ha anotado un gol. 3. Se puede jugar a dos velocidades distintas: lento y rápido. Esta mejora la hemos realizado añadiendo otro contador para la pelota. El primer contador es de 20ms y se corresponde al nivel lento. El segundo contador, para el nivel rápido, es de 10ms. Además, con la ayuda de un segundo switch, se podrá cambiar la velocidad de la pelota. Si el switch está a ‘1’ la velocidad de la pelota aumenta, y aparece la palabra “rápido” en los displays de 7 segmentos. Por otra parte, si el switch está a ‘0’, la velocidad de la pelota disminuye y aparece la palabra “lento” en los displays.
  • 13. 11 2.5. Enlace al video de PING-PONG versionado Enlace Dropbox: https://www.dropbox.com/s/8e9v8voieurudb9/InShot_20160520_154410.mp4?dl=0