Ver Mensaje Individual
  #18 (permalink)  
Antiguo 27/04/2005, 11:48
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 20 años
Puntos: 17
Cuando habláis en VB soléis hablar "del rendimiento" ;) Tranquilo, un juego tan simple le hagas como le hagas el ordenador no lo va a notar. Piensa que un ordenador antiguo generaba decenas de imágenes 3D por _segundo_ en juegos como Quake1 (sin aceleración gráfica, por procesador) y no se resentía. ¿Crees que un Pacman le cuesta? :)



Ahora la explicación:

Para hacerlo por casillas te sugiero seguir esta forma:


Defines una estructura que contenga la información sobre el estado del mapa: Si hay pared, si hay comida, si hay premio.

Código:
Type Casilla
    Pared As Boolean
    Comida As Boolean
    Premio As Boolean
End Type

El array doble que harás será declarado de este tipo, con el tamaño, por ejemplo, de 25x25 donde cargarás y usarás el mapa.

Código:
Dim Mapa(25, 25) As Casilla
Por otro lado puedes tener unas variables que digan dónde está el Pacman, los monstruos y el lugar de comienzo de ambos, por decir algo. Pero eso _no_ en la estructura del mapa que te he puesto antes sino fuera.

Te sugiero que no hagas todo a lo loco (estilo VB), y primero crees una función que tome como argumento un array (el mapa) y un Formulario. Esta función pintará el mapa en el formulario dado, aunque sea con Shapes.

Después de comprobar que funciona bien, creas otra función que calcule la siguiente posición del PacMan y los monstruos, incluyendo que mire que teclas están pulsadas (para saber a dónde va PacMan... Esto se suele también incluir en otra función aparte, pero bueno, para esto es suficiente), que compruebe que la casilla siguiente está vacía (en el array Mapa se ve), que añada un punto si en la casilla hay un "coco" y también le borre de esa casilla después de pasar, los premios, etc.

Después haces una función "proceso", que sea llamada por un Timer cada 600 milisegundos por ejemplo, y esta función lo que hará será llamar a la función de cálculo y después a la de pintado.

Y ya tienes el juego hecho. Un poco de decoración, te curras la inteligencia artificial, algún añadido original (como un premio que te permita andar por todo el mapa, incluyendo paredes, y si pasas por una desaparece... Es cuestión de quitar simplemente el estado booleano y un Timer adicional para los premios... ¿Ves lo fácil que es teniendo un juego bien estructurado?) y listo. :)

No es nada complicado, inténtalo (los dos solos) siguiendo las pautas que te he escrito aquí y voilá!