also don't you just wish you could know the guy(s) who programed zergling AI to help us out:P?
HAHA that would help. The annoying this is that I've had this problem with XNA, but I was able to solve it easily because I could access individual instances for calculations, for example:
if (gameobject[x].isOverlapping(gameobject[y]) && x != y)
{
gameobject[x].X = gameobject[y].X + ((gameobject[x].width/2 + gameobject[y].width/2) * sin(angleBetween(gameobject[x], gameobject[y]));
gameobject[x].Y = gameobject[y].Y + ((gameobject[x].height/2 + gameobject[y].height/2) * cos(angleBetween(gameobject[x], gameobject[y]));
}
This isn't the exact code I used, but it's very similar to what I had.