guía de programación de videojuegos i

6

Upload: fabian-rodriguez

Post on 24-May-2015

2.070 views

Category:

Education


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Guía de programación de videojuegos i

Jia200x Javier Letelier Ruiz

Jestudio.cl

Capitulo 1

GUIAProgramación de video juegos

Page 2: Guía de programación de videojuegos i

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 reglas , . , 3 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ú , .

Page 3: Guía de programación de videojuegos i

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 funciones madre llamadas , 3 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 = FalseSi (Usuario_presiona_izquierda() ){

Izquierda = True

Page 4: Guía de programación de videojuegos i

}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 variables a “False” luego pasa por , , 4 , condiciones relativas a la pulsación de botones y por cada uno asigna “True” si fue , presionado.

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

Entero x, yX = 0Y = 0

Procesamiento(){

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

Page 5: Guía de programación de videojuegos i

{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 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 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 (

Page 6: Guía de programación de videojuegos i

ejecución se repetirán las funciones por ciclos Llega a la función), 3 . Entrada() y se, inicializan las variables arriba abajo izquierda derecha a “False” Luego se comprueba 4 ( , , , ) . , 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 unidad a la coordenada ; , 1 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 funciones nos ha ayudado a crear una simple base para un 3 , próximo juego .

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