能。
我把你的问题理解为两部分:1. 沿轨迹运动。2. 离散地。
第一个问题
最简单的实现方式就是把linerender中的顶点数组拿出来,在这一串点上做线性插值,来作为单个物体的轨迹。更具体一点,先计算总路程长度,根据给定的时间计算出运动速度(或者直接指定速度),然后从第一个点开始,朝向第二个点,每帧移动deltaTime * 速度,到达第二个点后,变为朝向第三个点,以此类推,直到到达最后一个点。
如果你的linerender在运动过程中是变化的。那就需要你在发生变化后更新上面的顶点数组,具体处理取决于你的需求(我正在朝向的点突然跑到我身后了怎么办?少了或者多了几个点怎么办?)
第二个问题
要把你的若干个物体分离开,而不是挤在一块。假设一种最坏情况,每个物体定的速度都不一样,开始的时间也不固定,如何让他们不撞在一起?
考虑到你的物体必须吸附在轨迹上,简单根据相对位置去算一个斥力应该是不行。可以在速度上做文章。
当发生碰撞时(不管你是用collission还是数学运算来检测),处在比较后方的物体速度暂时为0,这个“后方”可以用两物体连线向量与当前运动方向的点积来判断(但也不总是正确的,需要一些特殊处理),直到前面的物体走出范围就再把速度恢复。
当然你也可以做复杂一点,把将要碰撞的物体的距离作为参数,给速度一个增量(可正可负),让变化平滑一点。
这两个都做好后,就是一个比较基础的效果了,可以根据你的需求再改进。