SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler 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).

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a Conceptos básicos de programación de videojuegos

Semelhante a 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
 

Último

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 

Último (20)

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 

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).