Mostrando entradas con la etiqueta mayordomo. Mostrar todas las entradas
Mostrando entradas con la etiqueta mayordomo. Mostrar todas las entradas

lunes, 5 de abril de 2010

El desarrollo físico del juego

Buenas despues de tanto tiempo sin actualizar, os vamos a contar los avances desarrollados en la práctica durante este último mes, aunque a partir de ahora actualizaremos más a menudo. Mientras Jorge se esta encargando del entrenamiento para la detección de caras, para ir avanzando, iré desarrollando la parte física de lo que será nuestro juego.

El primer problema que se planteó, como en cualquier juego, fue el simple hecho de empezarlo. ¿Cómo hacerlo?¿Por donde empiezo? ¿Como lo vamos a ligar a la otra parte?

Después de mucho pensarlo decidimos desarrollar el juego utilizando una matriz de dos dimensiones de numeros enteros rellenandola con ceros para los puntos en blanco, señalando con 1 los puntos criticos de la pelota, y con un 2 las palas.
Para ello creamos nuestra matriz
int TablaJuego[Pixelesfila][PixelesColumna]
Con esto ya tenemos la tabla ajustada al tamaño de la pantalla.
Además tambien hemos definido un RADIO de la pelota, que realmente será una cruz pero que nos dará los puntos donde la pelota puede chocar contra los bordes o las palas y un tamaño para la pala TAMANOPALA que momentaneamente y como una primera simplificación ocupará una columna.
for (int i=90; i<90+TAMANOPALA; i++){
TablaJuego [i][1]= 2;
TablaJuego [i][PixelesColumna-1] = 2;
}
Con esta inicialización estamos dejando una linea a la "espalda" de nuestro pala que será considerada como tanto del jugador contrario.

A partir de este momento se nos plantea la gran dificultad del juego. El movimiento de la pelota, sobre todo en los momentos críticos. Los golpes con la pala y los rebotes con las paredes. Y aún mas crítico será el momento en el que la pelota rebote y ademas se encuentre con la pala.

Asi pues recorreremos la matriz variando la posición de la pelota acorde a unas sencillas leyes como por ejemplo la que ilustra el siguiente fragmento de código.

ContinuaTrayectoria [0] = Trayectoria [0];
ContinuaTrayectoria [1] = Trayectoria [1];
TablaJuego [i+ContinuaTrayectoria[0]][j+ContinuaTrayectoria[1]] =1;
TablaJuego [i][j]=0;
i= i+ContinuaTrayectoria[0];
j= j+ContinuaTrayectoria[1];

Cuando el programa esté completamente operativo, se podrá observar, para quien quiera leer el código que se están estudiando todos los casos posibles.

Además en la última parte se ha incluido un pequeño marcador que variará cada vez que un jugador anote un gol.

Esperamos volver a escribir pronto.