     }
     
     float dist = sqrt(dist2);
+    
+    if(dist > 0.7){
+      continue;
+    }
+    
+    dist = dist / 0.7;
     
     float abc = startAt;
   

    vec2 xy2 = (xy) * pullingLength;
    xy2 += xy * (1 - dist) * (1 - dist) * pullingLength * pulling * 0.25;
    
    vec2 localTc = (position + xy2) / love_ScreenSize.xy;
    
    tcX += localTc.x;
    tcY += localTc.y;
    
    nbTc++;
  }
  

    return Texel(texture, texture_coords);
  }
  
  float sumDist = 0;
  
  vec2 tc = vec2(0, 0);
  
  for(int i = 0; i < nbTc; i++){
    vec2 diffTc = tcs[i] - texture_coords;
    float lengthTc = sqrt((diffTc.x * diffTc.x) + (diffTc.y * diffTc.y));
    sumDist += lengthTc;
  }
  
  if(sumDist < 0.000000000001){ // :/
    return Texel(texture, texture_coords);
  }
  
  for(int i = 0; i < nbTc; i++){
    vec2 diffTc = tcs[i] - texture_coords;
    float lengthTc = sqrt((diffTc.x * diffTc.x) + (diffTc.y * diffTc.y));
    tc = tc + diffTc * lengthTc / sumDist;
  }
  
  return Texel(texture, tc + texture_coords);
}
