SlideShare a Scribd company logo
1 of 6
Download to read offline
Cpu 1
 ai l
  to




GI
 UA                 J td .
                    e ui l
                     s o c

        Po rmai d v e je o
         rga c n e i o u g s
              ó    d




J 20
i 0x
 a                   J v r eee R i
                      a i L tlr u
                        e    i   z
Capitulo
                              Conceptos básicos.


Durante la siguiente guía, se trabajaran los conceptos de la programación de video juego
comenzando desde lo simple para luego ir aumentando la dificultad. Los ejemplos dados
en esta guía serán escritos en un pseudo-código. Es decir, ninguno en especial, solamente
se toman las bases de un lenguaje de alto nivel, y se generalizan para dar una idea de
como deberia ser el codigo en distintos lenguajes. Este pseudo-codigo esta principalmente
basado en C/C++ por lo cual si programas en el sera aun más util.


Antes de comenzar con nuestra guía asumiremos que se tienen conocimientos avanzados
en algún lenguaje de programación, pero de todos modos intentaremos abarcar desde la
raíz los conceptos propios de los video juegos. Manos a la obra.




Lo primero que debemos saber, es como funciona un juego. Básicamente, las 3 reglas
básicas son la ENTRADA, el PROCESAMIENTO y la SALIDA, que se van agrupando de
distinta forma para ir creando la diversidad propia de los video juegos.


ENTRADA: En la entrada se llaman funciones encargadas de recibir información de los
controladores (como joystick, teclado, Mouse), y de asignar el estado de los botones o
teclas en las variables, para ver si fue apretado o no un botón.


PROCESAMIENTO: Es en este espacio donde se le da sentido a lo que se reciba en la
ENTRADA, y donde se procesa el juego en si. Un ejemplo de procesamiento, sería el
recibir la tecla “Enter” del teclado, y decirle al juego que entre al menú.
SALIDA: Es aquí donde se llama a rutinas encargadas de mostrar todo en pantalla,
además de reproducir música y sonidos, enviar datos (en el caso de un juego online), etc.




Ya sabemos la estructura mínima de un juego. Algunos programadores prefieren
especificar cada una de las áreas o espacio, generando 3 funciones madre llamadas
ENTRADA, PROCESAMIENTO y SALIDA, pero para mi gusto, es una limitación, porque
quita el dinamismo del código. Sin embargo, comenzaré ilustrando con estas funciones.




Implementación en pseudo-código:

Función Principal(argumentos externos)
{
     Mientras (Usuario_No_Presione_ESC() )
     {
          Entrada()
          Procesamiento()
          Salida()
     }
}




Esta es una plantilla de un juego simple, veremos como podemos desarrollarla.
Para ejemplificar, crearé un pequeño juego sin mucho sentido, en el cual se pueda mover
al personaje con las flechas por la pantalla.


En la función Entrada, debemos verificar si fueron presionadas las teclas, con el siguiente
pseudo-código (las variables booleanas deben estar definidas globalmente, es decir, fuera
de las funciones, para que puedan ser leídas desde cualquier sección):




Booleano izquierda, derecha, arriba, abajo = False

Entrada()
{
     izquierda, derecha, arriba, abajo = False
     Si (Usuario_presiona_izquierda() )
     {
          Izquierda = True
}
      Si (Usuario_presiona_derecha() )
      {
           Derecha = True
      }
      Si (Usuario_presiona_arriba() )
      {
           Arriba = True
      }
      Si (Usuario_presiona_abajo() )
      {
           Abajo = True
      }
}



Si ya saben por donde irá el código, notarán que no tiene eficiencia. Lo hago de esta
manera solo para demostrar y marcar el funcionamiento de las áreas.


El código, cuando es llamado, inicializa las 4 variables a “False”, luego pasa por
condiciones relativas a la pulsación de botones, y por cada uno asigna “True” si fue
presionado.


Sigamos con el área de procesamiento
Generaremos 2 variables enteras (deben ser globales, es decir, que puedan ser leídas
desde cualquier parte del código), que serán las coordenadas de nuestro personaje.



Entero x, y
X = 0
Y = 0

Procesamiento()
{
     Si (Izquierda == True) Entonces
     {
          X = X – 1 // Se le resta 1 unidad al componente x de la
coordenada, para moverlo a la izquierda
     }
     Si (Derecha == True) Entonces
     {
          X = X + 1 // Se le suma 1 unidad al componente x de la
coordenada, para moverlo a la derecha
     }

      Si (Arriba == True) Entonces
{
          Y = Y – 1 // Se le resta 1 unidad al componente y de la
coordenada, para moverlo hacia arriba
     }

     Si (Abajo == True) Entonces
     {
          Y = Y + 1 // Se le suma 1 unidad al componente y de la
coordenada, para moverlo hacia abajo
     }
}


OBSERVACIÓN: Al contrario del trabajo con gráficos cartesianos, el eje Y está invertido.
Es decir, si sumamos unidades, “nos movemos hacia abajo”.


En el procesamiento, se lee el estado de cada tecla (definido con la función Entrada() ), y
se le asigna la acción (en este caso, actualizar las coordenadas).
Vamos ahora a la función de salida.



Salida()
{
     Dibujar_en_pantalla_al_personaje_en_la_ubicación_x_e_y(X,Y)
}



Lo que hace esta función, es dibujar al personaje en pantalla (se puede implementar
simplemente en cualquier lenguaje de programación, conociendo alguna función de dibujo
en pantalla con coordenadas), en X e Y.


Una breve explicación del código final:
Recordemos el esquema básico de un juego simple:

Función Principal(argumentos externos)
{
     Mientras (Usuario_No_Presione_ESC() )
     {
          Entrada()
          Procesamiento()
          Salida()
     }
}

Mientras el usuario no presione la tecla ESC (o la tecla que se defina para el término de
ejecución), se repetirán las 3 funciones por ciclos. Llega a la función Entrada(), y se
inicializan las 4 variables (arriba, abajo, izquierda, derecha) a “False”. Luego, se comprueba
si alguna de las teclas fue presionada, y en el caso de ser así, se almacena la información
en las variables (con un “True”).
Luego, en Procesamiento() se analiza que teclas fueron presionadas, y se le aplica una
transformación en el eje para simular movimiento. ¿Cómo?


Si tenemos un ciclo que se repite varias veces por segundo, en el cual se muestra una
imagen en pantalla; y en cada ciclo, restamos 1 unidad a la coordenada X, veremos que el
personaje se “mueve” a la izquierda (el mismo efecto que se logra en una película de cine
antigua, que se giraba una cinta a gran velocidad, para mostrar varias imágenes por
segundo, generando la sensación de movimiento).


En la función Salida(), se muestra el personaje según las coordenadas (en el caso de que
fueran alteradas con respecto a las anteriores, generará el cambio de posición, que en
repetición generará movimiento).


La repetición cíclica de estas 3 funciones, nos ha ayudado a crear una simple base para un
próximo juego.


En los siguientes capítulos analizaremos características propias de los juegos (animación,
colisiones, dinamismo).

More Related Content

What's hot

Practicas derive 6
Practicas derive 6Practicas derive 6
Practicas derive 6Edson Olvera
 
◘ Animación tres casos
◘ Animación tres casos ◘ Animación tres casos
◘ Animación tres casos 990429
 
Programa simple java julian
Programa simple java julianPrograma simple java julian
Programa simple java juliancoruniversitec
 
Atajos win 8
Atajos win 8Atajos win 8
Atajos win 8jloconi
 
Software matemático
Software matemáticoSoftware matemático
Software matemáticoJoselina Vila
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controllucer03
 
visual Basic silverio y misael
visual Basic silverio y misaelvisual Basic silverio y misael
visual Basic silverio y misaelmisael1514
 
Instrucciones vistas en scratch
Instrucciones vistas en scratchInstrucciones vistas en scratch
Instrucciones vistas en scratchFlor_are
 
Tuto importar datos_sql
Tuto importar datos_sqlTuto importar datos_sql
Tuto importar datos_sqlAlex Camayo
 
Modulo 1 - Proteus
Modulo 1 - ProteusModulo 1 - Proteus
Modulo 1 - ProteusRaniellys
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programaFelipe Romano
 

What's hot (14)

Practicas derive 6
Practicas derive 6Practicas derive 6
Practicas derive 6
 
◘ Animación tres casos
◘ Animación tres casos ◘ Animación tres casos
◘ Animación tres casos
 
Programa simple java julian
Programa simple java julianPrograma simple java julian
Programa simple java julian
 
Atajos win 8
Atajos win 8Atajos win 8
Atajos win 8
 
Software matemático
Software matemáticoSoftware matemático
Software matemático
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Derive 5
Derive 5Derive 5
Derive 5
 
Proteus
ProteusProteus
Proteus
 
Dfd
DfdDfd
Dfd
 
visual Basic silverio y misael
visual Basic silverio y misaelvisual Basic silverio y misael
visual Basic silverio y misael
 
Instrucciones vistas en scratch
Instrucciones vistas en scratchInstrucciones vistas en scratch
Instrucciones vistas en scratch
 
Tuto importar datos_sql
Tuto importar datos_sqlTuto importar datos_sql
Tuto importar datos_sql
 
Modulo 1 - Proteus
Modulo 1 - ProteusModulo 1 - Proteus
Modulo 1 - Proteus
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programa
 

Similar to Conceptos básicos de programación de videojuegos

Similar to Conceptos básicos de programación de videojuegos (20)

Xna game studio presentación 04
Xna game studio   presentación 04Xna game studio   presentación 04
Xna game studio presentación 04
 
4 manipular botones
4 manipular botones4 manipular botones
4 manipular botones
 
4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
pseint ppt.pptx
pseint ppt.pptxpseint ppt.pptx
pseint ppt.pptx
 
Guía de programacion de videojuegos II
Guía de programacion de videojuegos IIGuía de programacion de videojuegos II
Guía de programacion de videojuegos II
 
Game Maker Primera parte
Game Maker Primera parteGame Maker Primera parte
Game Maker Primera parte
 
Manual3 d studiomax
Manual3 d studiomaxManual3 d studiomax
Manual3 d studiomax
 
Gamemakeruno
GamemakerunoGamemakeruno
Gamemakeruno
 
Entrenamiento de un carrito usando redes neuronales
Entrenamiento de un carrito usando redes neuronalesEntrenamiento de un carrito usando redes neuronales
Entrenamiento de un carrito usando redes neuronales
 
Software para cálculos matemáticos
Software para cálculos matemáticosSoftware para cálculos matemáticos
Software para cálculos matemáticos
 
Ejercicios app inventor
Ejercicios app inventorEjercicios app inventor
Ejercicios app inventor
 
Gnuplot
GnuplotGnuplot
Gnuplot
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Introducción a la Programación con Java
Introducción a la Programación con JavaIntroducción a la Programación con Java
Introducción a la Programación con Java
 
2 p inf 6 rmb
2 p inf 6 rmb2 p inf 6 rmb
2 p inf 6 rmb
 
Scratchmini manual 1_
Scratchmini manual 1_Scratchmini manual 1_
Scratchmini manual 1_
 
Actionscript 3.0 primeros pasos botones
Actionscript 3.0 primeros pasos botonesActionscript 3.0 primeros pasos botones
Actionscript 3.0 primeros pasos botones
 
Clips de pelicula
Clips de peliculaClips de pelicula
Clips de pelicula
 
Teorico2
Teorico2Teorico2
Teorico2
 

Recently uploaded

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdfRAMON EUSTAQUIO CARO BAYONA
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfpatriciavsquezbecerr
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 

Recently uploaded (20)

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 

Conceptos básicos de programación de videojuegos

  • 1. Cpu 1 ai l to GI UA J td . e ui l s o c Po rmai d v e je o rga c n e i o u g s ó d J 20 i 0x a J v r eee R i a i L tlr u e i z
  • 2. Capitulo Conceptos básicos. Durante la siguiente guía, se trabajaran los conceptos de la programación de video juego comenzando desde lo simple para luego ir aumentando la dificultad. Los ejemplos dados en esta guía serán escritos en un pseudo-código. Es decir, ninguno en especial, solamente se toman las bases de un lenguaje de alto nivel, y se generalizan para dar una idea de como deberia ser el codigo en distintos lenguajes. Este pseudo-codigo esta principalmente basado en C/C++ por lo cual si programas en el sera aun más util. Antes de comenzar con nuestra guía asumiremos que se tienen conocimientos avanzados en algún lenguaje de programación, pero de todos modos intentaremos abarcar desde la raíz los conceptos propios de los video juegos. Manos a la obra. Lo primero que debemos saber, es como funciona un juego. Básicamente, las 3 reglas básicas son la ENTRADA, el PROCESAMIENTO y la SALIDA, que se van agrupando de distinta forma para ir creando la diversidad propia de los video juegos. ENTRADA: En la entrada se llaman funciones encargadas de recibir información de los controladores (como joystick, teclado, Mouse), y de asignar el estado de los botones o teclas en las variables, para ver si fue apretado o no un botón. PROCESAMIENTO: Es en este espacio donde se le da sentido a lo que se reciba en la ENTRADA, y donde se procesa el juego en si. Un ejemplo de procesamiento, sería el recibir la tecla “Enter” del teclado, y decirle al juego que entre al menú.
  • 3. SALIDA: Es aquí donde se llama a rutinas encargadas de mostrar todo en pantalla, además de reproducir música y sonidos, enviar datos (en el caso de un juego online), etc. Ya sabemos la estructura mínima de un juego. Algunos programadores prefieren especificar cada una de las áreas o espacio, generando 3 funciones madre llamadas ENTRADA, PROCESAMIENTO y SALIDA, pero para mi gusto, es una limitación, porque quita el dinamismo del código. Sin embargo, comenzaré ilustrando con estas funciones. Implementación en pseudo-código: Función Principal(argumentos externos) { Mientras (Usuario_No_Presione_ESC() ) { Entrada() Procesamiento() Salida() } } Esta es una plantilla de un juego simple, veremos como podemos desarrollarla. Para ejemplificar, crearé un pequeño juego sin mucho sentido, en el cual se pueda mover al personaje con las flechas por la pantalla. En la función Entrada, debemos verificar si fueron presionadas las teclas, con el siguiente pseudo-código (las variables booleanas deben estar definidas globalmente, es decir, fuera de las funciones, para que puedan ser leídas desde cualquier sección): Booleano izquierda, derecha, arriba, abajo = False Entrada() { izquierda, derecha, arriba, abajo = False Si (Usuario_presiona_izquierda() ) { Izquierda = True
  • 4. } Si (Usuario_presiona_derecha() ) { Derecha = True } Si (Usuario_presiona_arriba() ) { Arriba = True } Si (Usuario_presiona_abajo() ) { Abajo = True } } Si ya saben por donde irá el código, notarán que no tiene eficiencia. Lo hago de esta manera solo para demostrar y marcar el funcionamiento de las áreas. El código, cuando es llamado, inicializa las 4 variables a “False”, luego pasa por condiciones relativas a la pulsación de botones, y por cada uno asigna “True” si fue presionado. Sigamos con el área de procesamiento Generaremos 2 variables enteras (deben ser globales, es decir, que puedan ser leídas desde cualquier parte del código), que serán las coordenadas de nuestro personaje. Entero x, y X = 0 Y = 0 Procesamiento() { Si (Izquierda == True) Entonces { X = X – 1 // Se le resta 1 unidad al componente x de la coordenada, para moverlo a la izquierda } Si (Derecha == True) Entonces { X = X + 1 // Se le suma 1 unidad al componente x de la coordenada, para moverlo a la derecha } Si (Arriba == True) Entonces
  • 5. { Y = Y – 1 // Se le resta 1 unidad al componente y de la coordenada, para moverlo hacia arriba } Si (Abajo == True) Entonces { Y = Y + 1 // Se le suma 1 unidad al componente y de la coordenada, para moverlo hacia abajo } } OBSERVACIÓN: Al contrario del trabajo con gráficos cartesianos, el eje Y está invertido. Es decir, si sumamos unidades, “nos movemos hacia abajo”. En el procesamiento, se lee el estado de cada tecla (definido con la función Entrada() ), y se le asigna la acción (en este caso, actualizar las coordenadas). Vamos ahora a la función de salida. Salida() { Dibujar_en_pantalla_al_personaje_en_la_ubicación_x_e_y(X,Y) } Lo que hace esta función, es dibujar al personaje en pantalla (se puede implementar simplemente en cualquier lenguaje de programación, conociendo alguna función de dibujo en pantalla con coordenadas), en X e Y. Una breve explicación del código final: Recordemos el esquema básico de un juego simple: Función Principal(argumentos externos) { Mientras (Usuario_No_Presione_ESC() ) { Entrada() Procesamiento() Salida() } } Mientras el usuario no presione la tecla ESC (o la tecla que se defina para el término de
  • 6. ejecución), se repetirán las 3 funciones por ciclos. Llega a la función Entrada(), y se inicializan las 4 variables (arriba, abajo, izquierda, derecha) a “False”. Luego, se comprueba si alguna de las teclas fue presionada, y en el caso de ser así, se almacena la información en las variables (con un “True”). Luego, en Procesamiento() se analiza que teclas fueron presionadas, y se le aplica una transformación en el eje para simular movimiento. ¿Cómo? Si tenemos un ciclo que se repite varias veces por segundo, en el cual se muestra una imagen en pantalla; y en cada ciclo, restamos 1 unidad a la coordenada X, veremos que el personaje se “mueve” a la izquierda (el mismo efecto que se logra en una película de cine antigua, que se giraba una cinta a gran velocidad, para mostrar varias imágenes por segundo, generando la sensación de movimiento). En la función Salida(), se muestra el personaje según las coordenadas (en el caso de que fueran alteradas con respecto a las anteriores, generará el cambio de posición, que en repetición generará movimiento). La repetición cíclica de estas 3 funciones, nos ha ayudado a crear una simple base para un próximo juego. En los siguientes capítulos analizaremos características propias de los juegos (animación, colisiones, dinamismo).