CHIPMUNK en bennu

Started by Prg, January 12, 2011, 04:27:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

Hola. No veo ese comportamiento. ¿Podrías poner un pequeño ejemplo?

Gracias
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Erkosone

#436
Hola Prg, quería compartir algo contigo, he estado integrando tu función de generación de terrenos con mi PhysicsMotionAPI para que la gente pueda generar un terreno simplemente con:


Physics_scenario_terrain_Build( file, graph, umbral );


Y he visto un problema en el algoritmo que genera la lista de polígonos, bueno, en el que genera la lista de vectores de un polígono mejor dicho, el algoritmo en si mismo es genial, no puedes imaginarte cuanto te agradezco esta parte del trabajo que has hecho, es una pasada en serio, me encanta.


Pero..


El problema viene en un juego tipo plataformas como un mario o un sonic o juegos así, las plataformas tienen que ser planas y tu generador de terrenos las hace "casi" planas, con lo de planas me refiero a que en el segmento donde va a caer un personaje, si no es PERFECTAMENTE HORIZONTAL el personaje o lo que sea se va desplazando hacia un lado por que hay una pequeña pendiente.


He logrado solucionarlo después de pegarme un buen rato analizando como habías montado la función del generador de terrenos ;)


Te paso la nueva función genTerr() para que le des un vistazo, no quería dejarlo simplemente en "vale, lo he arreglado, ya está..", te lo comparto por que es un dato curioso que seguramente querrás modificar en el pack de ejemplos que tienes publicado ;)


Lo que he añadido es una variable llamada "INT CORRECTION_" que se usa en un blucle tipo for, la variable va de cero a 3, y lo que hace el bucle es comparar si la diferencia en Y de ambos vectores tiene una diferencia menor de 3, si es así los iguala para generar un plano horizontal perfecto.


Es una pequeña corrección a tu algoritmo de escaneo de vectores en polígonos que me parece buenísimo pero he creído que con esto ya es mas que buenísimo, ahora es perfecto  ;D



function genTerr(int l)
private
   cantL, cantP,objeto,i;
   cpVect * c1;
   cpVect * c2;
   int ln;
   int correction_;
begin
   cantL=cantElement(l);
   for (z=0;z<cantL;z++)
      objeto=getElement(l,z);
      cantP=cantElement(objeto);
      for (i=0;i<cantP-1;i++)
         c1=getElement(objeto,i);
         c2=getElement(objeto,i+1);
         if(c1.y < c2.y)
            for( correction_=0; correction_<3; correction_++ )
               if(c1.y == c2.y - correction_)
                  c1.y = c2.y;
                  break;
               end
            end
         else
            for( correction_=0; correction_<3; correction_++ )
               if(c2.y == c1.y - correction_)
                  c2.y = c1.y;
                  break;
               end
            end
         end
         pLinea(c1,c2);
         ln++;
         draw_fcircle(c1.x,c1.y,4);
      end
      draw_fcircle(c2.x,c2.y,4);
   end
   say("lineas generadas = "+ ++ln);
end




Gracias por este trabajo que has hecho, es una pasada poder disfrutar de ChipMunk en bennuGD amigo  ;)

emov2k4

Alguien me puede ayudar, quiero hacer un juego en TOP-DOWN utilizando Chipmunk , pero al no ponerle gravedad igual quedan flotando los graficos... saludos

Erkosone

Pero que es exactamente lo que quieres hacer? algún vídeo demostrativo?

emov2k4

Estimado ,gracias por responder... ya encontré la solución, utilicé el demo de bomberman.  saludos


emov2k4

Estimados,
Tengo un proceso que comienza en eje x -50 , en el PC me lo muestra bien..., pero al portar a android el eje me lo muestra en 0

mirar acá código
http://forum.bennugd.org/index.php?topic=3813.0

Saludos