您可以将这样的路径编码为一系列具有相对坐标的线段。假设您想要这样的路径:
|
\ _
其中每行是 10 个像素。您可以将其编码为线段的 javascript 数组(持续时间表示遍历该段应花费的秒数或毫秒数):
[
{"start_x":0,"start_y":0,"stop_x":0,"stop_y":10,"duration":2},
{"start_x":0,"start_y":10,"stop_x":10,"stop_y":20,"duration":3},
{"start_x":10,"start_y":20,"stop_x":20,"stop_y":20,"duration":2}
]
然后,您只需使用时间估计来找到段开始和段结束之间的中间点。当前的偏移量为:
var pct_complete = elapsed_time / line_segment.duration,
x_diff = (line_segment.stop_x - line_segment.start_x),
y_diff = (line_segment.stop_y - line_segment.start_y),
render_x = line_segment.start_x + (x_diff * pct_complete),
render_y = line_segment.start_y + (y_diff * pct_complete);
其中 elapsed_time 是自您开始分段以来的时间。正如我所提到的,使用相对坐标,然后您只需调整 render_x/y 以适应路径在世界中的位置和屏幕偏移。
对于更平滑的转弯,请使用较小的线段。