[GAME] WORMED!

Proyectos Completados.

Re: [GAME] WORMED!

Postby shao » Wed Nov 25, 2015 12:06 pm

Bueno, voy a ver como lo consigo hacer lo que busco, ¡gracias por la info!.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: [GAME] WORMED!

Postby AmakaSt » Thu Nov 26, 2015 3:39 pm

shao wrote:Bueno, voy a ver como lo consigo hacer lo que busco, ¡gracias por la info!.


Hola Shao,

Aquí te dejo el código de una función constraint adaptada a Div:
Code: Select all
function constraint(id1, fijaID1, id2, fijaID2, distancia);
private
    xdist;
    ydist;
    dist;
    diff;
    angulo;
    correccion;

begin   
   if (fijaID1 and fijaID2) return; end

   xdist    = id1.x - id2.x;
    ydist    = id1.y - id2.y;
    dist    = sqrt(xdist * xdist + ydist * ydist);
    diff    = dist - distancia;
   
    if (abs(diff) < 1) return; end
   
    angulo   = -atan2(xdist, ydist);
   
    if (fijaID1 or fijaID2)
       correccion = diff;
    else
       correccion = diff / 2;
    end
   
   if (!fijaID1)
        id1.x += correccion * (sin(angulo) / 1000);
        id1.y -= correccion * (cos(angulo) / 1000);
      
        id1.angle = atan2(id2.y-id1.y, id2.x-id1.x);
    end

    if (!fijaID2)
        id2.x -= correccion * (sin(angulo) / 1000);
        id2.y += correccion * (cos(angulo) / 1000);

        id2.angle = atan2(id1.y-id2.y, id1.x-id2.x);
   end
end


Con eso ya es solo llamar a la función con las ids de los procesos implicados:
Code: Select all
constraint(_id[0], true, _id[1], false, 40); //_id[0] la cabeza del gusano
constraint(_id[2], true, _id[3], false, 40);


Un saludo. :)
User avatar
AmakaSt
 
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm

Re: [GAME] WORMED!

Postby shao » Thu Nov 26, 2015 5:06 pm

Gracias Amaka, la probaré mas tarde.

¿No estaría mejor en recursos esto?.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Previous

Return to Proyectos Full

Who is online

Users browsing this forum: No registered users and 1 guest