Logo

¡Bienvenido a Stratos!

Acceder

Foros



Gals Panic Clon

Iniciado por blau, 07 de Enero de 2010, 01:18:14 AM

« anterior - próximo »

blau

Buenas, esta Nochevieja enchufé la recreativa para echar unas partiditas y apareció el Gals Panic.

Me entró la nostalgia y en unas horillas que he tenido estas fiestas, he hecho un semiclon.

Aqui teneis un video  http://www.youtube.com/watch?v=UaQo4tRukro

Quedan que perfilar muchas cosillas pero ya es "jugable".   :..

Se aceptan criticas contructivas.  ;)

cybernoid

pues pinta muy bien :)

que algoritmo estas utilizando para mostrar las partes de la imagen?

blau



El algoritmo lo he diseñado a partir de un supuesto metodo que vi para saber si un punto esta dentro o no de un poligono. Luego use para saber si esta dentro el metodo de ir sumando los angulos. :)

En fin que lo que hago es que cojo la posicion del enemigo principal, y desde ahi trazo lineas horizontales a ambos lados y cuando topo con un borde voy cambiando entre pintar y no.

Aqui tienes la chicha del algoritmo:


void LanzaRayoHorizontalParcial(int x, int y, int dx, int dy, bool pintar, int destino)
         {
             if (x == destino) return;

             do
             {
                 if (Data_Estado[x - dx + width * y] != Estados.Borde && Data_Estado[x + width * y] == Estados.Borde)
                 {
                     if (Data_Estado[x + dx + width * y] != Estados.Borde)
                     {
                         pintar = !pintar;
                     }
                     else
                     {
                         int estado = 0;
                         if (Data_Estado[x + width * ( y + dy)] == Estados.Borde) estado = 1;
                         else if (Data_Estado[x + width *( y - dy)] == Estados.Borde) estado = 2;

                         while (x != destino && Data_Estado[x + dx+ width * y] == Estados.Borde) x += dx; ;

                         if ((estado == 2 && Data_Estado[x + width * (y + dy)] == Estados.Borde)
                             || (estado == 1 && Data_Estado[x + width * (y - dy)] == Estados.Borde))
                         {
                             {
                                 pintar = !pintar;
                             }
                         }
                         if (x == destino) return;
                     }
                 }
                 else if (pintar && Data_Estado[x + width * y] != Estados.Borde)
                 {
                     Data_Estado[x + width * y] = Estados.Iluminado;
                 }
                 x += dx;
             } while (x != destino);
         }






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.
Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.