Sunteți pe pagina 1din 5

GRAFICACIN

Propuesta de proyecto final


Autor: Mendoza Prez Rodolfo
Aguilar Snchez Cristian

2015

GRAFICACIN Propuesta_Proyecto 2

GRAFICACIN
Introduccin
Con el transcurso del curso, hemos podido obtener conocimientos diversos en algunos
casos de problemas de graficacin, adems de que la necesidad de hacer funcionar
alguna idea u mtodo nos ha obligado a investigar en distintas fuentes el manejo y tratado
de muchos conceptos relacionados con la graficacin.
Con todo esto surgi la idea desde hace tiempo de generar como proyecto un juego de los
clsicos utilizando las libreras graficas que ya conocemos, estbamos pensando en
utilizar allegro, opengl o Miniwin, pues estas tres cuentan con todo lo necesario para poder
implementar una gran cantidad de juegos, sin embargo creemos que tenemos ms
conocimientos y experiencia utilizando allegro y Miniwin, pues para ambos es nuestra
primera vez utilizando Open gl y a pesar de que cuenta con muchas cualidades que
simplifican el trabajo, hemos estudiado ms a fondo las 2 mencionadas anteriormente, por
eso en esta ocasin utilizaremos Miniwin y algunas cualidades de allegro.
Tomando en cuenta tambin que ya sabemos hacer usos de primitivas y que contamos
ya con conocimientos anteriores para funciones de programacin, llegamos a la conclusin
de que un juego sera la mejor opcin para mezclar todo lo que ya sabemos y lo que
aprendimos durante el curso.

Propuesta
Nuestra propuesta es que como ya pudimos apreciar distintos ejemplos en clase de cmo
funcionan ciertas cosas, nosotros crearemos una versin del ya conocido juego Tetris
incluyendo todo lo que este juego debe tener, como sonidos(solo si consideramos
necesario), las figuras o texturas(dependiendo), las rotaciones, el score, la generacin
aleatorioa de figuras y el incrustado entre muchas otras caractersticas del juego, esto lo
haremos por partes, es decir primero nos centraremos en crear el escenario, con una
matriz y aplicar la textura(en caso de poder hacerlo), hacer las validaciones necesarias y
aplicar las condiciones que se requieran para que no se pueda atravesar las paredes del
escenario y para que las figuras choquen y no atraviesen el contenedor o rea de juego,

GRAFICACIN Propuesta_Proyecto 3
adems de validar que al generar una lnea se obtengan puntos y esta se elimine tal como
pasa en el juego original, como comienzo nosotros planteamos crear solo el primer nivel
del juego y en caso de sobrarnos tiempo, generar una serie de nivel que obviamente
dificulte al jugador obtener el triunfo.
Como mencionbamos anteriormente nosotros estamos ms familiarizados con las
funciones que incluye la librera de allegro y Miniwin(esta inclusive fue desarrollada en
espaol), adems de que estas libreras no nos dan ningn problema al momento de
utilizarla en nuestra IDE. Tambin ya investigamos si estas libreras cumplen con los
requisitos que solicitamos para implementar el juego y notamos que s, posee funciones
que nos permitirn cubrir las necesidades de operacin de los controles, la msica, el
escenario y todas las condiciones que requerir el juego.
Nuestro objetivo es tratar de implementar la mayor cantidad de conceptos y conocimientos
aprendidos durante el curso como lo son las transformaciones, adems de que
observamos que si utilizamos opengl el trabajo podra simplificarse a tal grado en el que la
esencia como tal se perdera pues la mayor parte de todo esto ya estara hecho y nuestra
intencin por cuestiones de tiempo es no demorarnos tanto, pero tambin no depender
tanto de lo que ya existe en su totalidad.

Problema
Quiz algunos de los problemas que se nos presenten sean por falta de conocimiento al
utilizar algunas funciones, peor no creemos que sea nada grave o a tal nivel de no poderse
resolver realizando alguna bsqueda de informacin o ejemplos de uso en internet.
Tenemos pensando crear una matriz que funcionara como el escenario principal de nuestro
juego y a este aplicarle una textura que lo har lucir como el tipo de juego clsico de
Tetris. En un principio tambin consideramos la idea de poder generar un Mario bros o
Megaman sin embargo ya tenemos algo de tiempo investigando como podramos
realizarlo y lo que necesitaramos. Al final concluimos que por cuestiones de tiempo la idea
ms factible era la del juego de Tetris, adems de que es un ejemplo perfecto para
implementar la traslacin, rotacin y lo visto en clase.

Problemas solucionados
PIEZA NUEVA
Al momento de agregar la funcionalidad al proyecto de querer visualizar la figura siguiente
a tratar, tenamos problemas pues al principio no sabamos cmo predecir la figura a salir,
despus de pensarlo un poco ese problema se solucion de una manera sencilla. Nosotros
manejamos la aparicin de una nueva figura mediante coordenadas, es decir tenemos
predefinidas el patrn de las coordenadas que dibujan cada pieza y las manipulamos

GRAFICACIN Propuesta_Proyecto 4
mediante una coordenada origen, es ah donde radica la solucin pues modificamos el
origen de la figura, es decir, por ejemplo decamos que el origen de la figura tena que ser
x = 5 para que esta apareciera en el centro, pues si modificamos ese origen en x y y
podremos hacer que la figura se dibuje en cualquier otra parte de la pantalla, de esta forma
simplemente dibujamos la pieza a lado derecho de la pantalla, posteriormente generamos
otra pieza y la pieza anterior se copia a una nueva pieza, es decir, la pieza original se copia
para que esta aparezca dentro del juego y la antigua pieza es borrada para almacenar una
nueva y modificando el origen se crea ese efecto de la prediccin de pieza pues est
siempre se copiara a otra pieza nueva, misma que aparecer en el juego.
COLISIONES
Otro problema fueron las colisiones, necesitbamos validar que si ya existan piezas en
determinadas coordenadas, la pieza no siguiera bajando y esta se incrustara, tanto
incrustar la pieza como la colisin fueron un problema en su momento, primero el punto de
incrustar, para lograr esto se elabor un mtodo que como accin deba verificar si exista
una posicin ocupada en el tablero, el mtodo cuenta con un for que se encargaba de
verificar 4 coordenadas(la longitud de una pieza) en el tablero, verifico si existan
coordenadas ya utilizadas en el mismo o si este estaba vaco, para hacer eso utilizo el
color, es decir mediante el color se dio cuenta de si haba o no coordenadas ocupadas,
porque de estar vacas el color del tablero seria negro, solucionando as las colisiones en el
tablero y pudiendo incrustar una pieza.
PIEZAS ALEATORIAS
Una vez hecho esto surgi un pequeo problema ms y es que en el juego del tetris las
piezas se generan aleatoriamente y estas van bajando solas, para generar piezas
aleatorias se cargaron las coordenadas de cada figura en un arreglo y se utiliz un random
para generar un nmero del 1 al 7(nmero de figuras existentes en el juego) de esta forma
un mtodo fue capaz de dibujar piezas diferentes(siempre recibe un entero inesperado del
1 al 7) porque haca uso de este random que le permite elegir las coordenadas de la figura
a dibujar, ahora bien para que las piezas bajaran automticamente se gener otro mtodo
que deba encargarse de que se incrustara la pieza una vez encontradas coordenadas ya
usadas, para realizar esto se utiliz un mtodo que ya incluye la clase y que se llama
espera mismo que recibe por parmetro el tiempo en milisegundos que pausara la
ejecucin, bueno dentro de un mtodo nuevo se program que se mantuviera apretada
automticamente la tecla ABAJO del teclado y que se esperara un segundo entre cada
vez que se apretara, generando asi ese efecto de que la pieza baja por si sola, cabe
mencionar que si el usuario presiona la tecla por si mismo la figura bajara de forma mucho
ms rpida.

GRAFICACIN Propuesta_Proyecto 5
BORDES
Este fue uno de los problemas ms rpidos y sencillos de resolver, por dar un simple
ejemplo basto con que se hiciera un mtodo con un for donde se especificara el tamao de
la matriz a emplear, por ejemplo si la matriz tena 20 de largo y 10 de ancho se
especificaba como lmite el 20 en coordenadas x de esta forma con una simple condicin
en la que se especifica que no sea mayor a 20 se bloquea el desplazamiento de la figura a
nada ms que esas coordenadas lmites y en el caso de y pues es ah donde aparecer
la pieza y hasta donde podr llegar al momento de caer.
TECLAS
La clase Miniwin reduce bastante el trabajo al momento de querer manejar el teclado,
basta con crear una instancia de teclado() y posteriormente acceder al uso de las teclas
como se hace en allegro, es muy sencillo utilizar cualquier tecla del teclado, obviamente
para aplicar la traslacin de izquierda a derecha o hacia abajo se aumentaba el valor de la
coordenada en x y en el caso de y se disminua, para la rotacin fue algo simple
tambin basto con un mtodo que hace las cosas muy similares a la rotacin habitual que
trabajamos en clase, para la rotacin se utiliz la tecla de direccin hacia ARRIBA.
BUG AL FINALIZAR JUEGO
Cuando nos encontrbamos haciendo pruebas del avance del juego que ya llevbamos
nos dimos cuenta que al llegar al lmite superior en y que establecimos para el juego
(mismo en el que aparecen las piezas) estas quedaban bugueadas apareciendo una
encima de otra, para solucionar esto utilizamos un time (), que una vez que sea alcanzado
el lmite en y preestablecido espere 2 segundos y muestre un mensaje que dice Game
over posteriormente espera 2 segundos ms y se cierra la aplicacin.
REPINTAR PANTALLA
Quiz esta parte ms que un problema solo era necesario mencionarla pues es una
funcin muy importante en el proyecto ya que la Liberia cuenta con un mtodo llamado
refresca () que es muy utilizado en cada pieza, pues cada que se hace alguna modificacin
como un desplazamiento, una rotacin, generar una nueva pieza e inclusive incrustar
requiere que la pantalla se refresque y plasme los cambios. Es por eso que es tan
importante mencionar esta parte del programa.

S-ar putea să vă placă și