• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Guía de programación de videojuegos i
 

Guía de programación de videojuegos i

on

  • 2,281 views

Primera entrega sobre la introducción a la programación de videojuegos.

Primera entrega sobre la introducción a la programación de videojuegos.

Statistics

Views

Total Views
2,281
Views on SlideShare
2,013
Embed Views
268

Actions

Likes
0
Downloads
89
Comments
1

2 Embeds 268

http://programandoideas.com 267
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Muchas gracias, me parece interesante esto n_n
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Guía de programación de videojuegos i Guía de programación de videojuegos i Document Transcript

    • Cpu 1 ai l toGI 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 ó dJ 20i 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 juegocomenzando desde lo simple para luego ir aumentando la dificultad. Los ejemplos dadosen esta guía serán escritos en un pseudo-código. Es decir, ninguno en especial, solamentese toman las bases de un lenguaje de alto nivel, y se generalizan para dar una idea decomo deberia ser el codigo en distintos lenguajes. Este pseudo-codigo esta principalmentebasado 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 avanzadosen algún lenguaje de programación, pero de todos modos intentaremos abarcar desde laraí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 reglasbásicas son la ENTRADA, el PROCESAMIENTO y la SALIDA, que se van agrupando dedistinta forma para ir creando la diversidad propia de los video juegos.ENTRADA: En la entrada se llaman funciones encargadas de recibir información de loscontroladores (como joystick, teclado, Mouse), y de asignar el estado de los botones oteclas 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 laENTRADA, y donde se procesa el juego en si. Un ejemplo de procesamiento, sería elrecibir 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 prefierenespecificar cada una de las áreas o espacio, generando 3 funciones madre llamadasENTRADA, PROCESAMIENTO y SALIDA, pero para mi gusto, es una limitación, porquequita 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 moveral personaje con las flechas por la pantalla.En la función Entrada, debemos verificar si fueron presionadas las teclas, con el siguientepseudo-código (las variables booleanas deben estar definidas globalmente, es decir, fuerade las funciones, para que puedan ser leídas desde cualquier sección):Booleano izquierda, derecha, arriba, abajo = FalseEntrada(){ 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 estamanera solo para demostrar y marcar el funcionamiento de las áreas.El código, cuando es llamado, inicializa las 4 variables a “False”, luego pasa porcondiciones relativas a la pulsación de botones, y por cada uno asigna “True” si fuepresionado.Sigamos con el área de procesamientoGeneraremos 2 variables enteras (deben ser globales, es decir, que puedan ser leídasdesde cualquier parte del código), que serán las coordenadas de nuestro personaje.Entero x, yX = 0Y = 0Procesamiento(){ Si (Izquierda == True) Entonces { X = X – 1 // Se le resta 1 unidad al componente x de lacoordenada, para moverlo a la izquierda } Si (Derecha == True) Entonces { X = X + 1 // Se le suma 1 unidad al componente x de lacoordenada, para moverlo a la derecha } Si (Arriba == True) Entonces
    • { Y = Y – 1 // Se le resta 1 unidad al componente y de lacoordenada, para moverlo hacia arriba } Si (Abajo == True) Entonces { Y = Y + 1 // Se le suma 1 unidad al componente y de lacoordenada, 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() ), yse 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 implementarsimplemente en cualquier lenguaje de programación, conociendo alguna función de dibujoen 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 seinicializan las 4 variables (arriba, abajo, izquierda, derecha) a “False”. Luego, se compruebasi alguna de las teclas fue presionada, y en el caso de ser así, se almacena la informaciónen las variables (con un “True”).Luego, en Procesamiento() se analiza que teclas fueron presionadas, y se le aplica unatransformació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 unaimagen en pantalla; y en cada ciclo, restamos 1 unidad a la coordenada X, veremos que elpersonaje se “mueve” a la izquierda (el mismo efecto que se logra en una película de cineantigua, que se giraba una cinta a gran velocidad, para mostrar varias imágenes porsegundo, generando la sensación de movimiento).En la función Salida(), se muestra el personaje según las coordenadas (en el caso de quefueran alteradas con respecto a las anteriores, generará el cambio de posición, que enrepetición generará movimiento).La repetición cíclica de estas 3 funciones, nos ha ayudado a crear una simple base para unpróximo juego.En los siguientes capítulos analizaremos características propias de los juegos (animación,colisiones, dinamismo).