[GAME] WORMED!

Proyectos Completados.
Post Reply
User avatar
shao
Posts: 6048
Joined: Wed Jun 17, 2009 4:51 pm

Re: [GAME] WORMED!

Post by shao »

Bueno, voy a ver como lo consigo hacer lo que busco, ¡gracias por la info!.
User avatar
AmakaSt
Posts: 402
Joined: Fri Oct 03, 2008 10:00 pm
Contact:

Re: [GAME] WORMED!

Post by AmakaSt »

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
shao
Posts: 6048
Joined: Wed Jun 17, 2009 4:51 pm

Re: [GAME] WORMED!

Post by shao »

Gracias Amaka, la probaré mas tarde.

¿No estaría mejor en recursos esto?.
Post Reply

Return to “Proyectos Full”