Upload
fabian-rodriguez
View
2.072
Download
5
Embed Size (px)
DESCRIPTION
Primera entrega sobre la introducción a la programación de videojuegos.
Citation preview
Jia200x Javier Letelier Ruiz
Jestudio.cl
Capitulo 1
GUIAProgramación de video juegos
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ú , .
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
}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
{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 (
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, ).