在分析研究位移的时候,对于复杂的移动,往往无从下手,但逐步分解为最简单的移动,就能发现实现的方法了。如前节所讲,处理这种简单的斜线运动,可以分解为水平方向和垂直方向,再对每个方向进行单独考察。在50次定时器触发中由stoppoint[0]移动到stoppoint[1],能分解为:在50次定时器触发中,水平方向由stoppoint[0].x移动到stoppoint[1].x,垂直方向由stoppoint[0].y移动到stoppoint[1].y。而每一次的移动量就相当容易计算了,只需要将两者相减并除以50即可。
以下代码实现将lineRunner在50个时间周期内从stoppoint[0]移动到stoppoint[1]:
LineRunner.x+=((stoppoint[1].x-stoppoint[0].x)/50);
LineRunner.y+=((stoppoint[1].y-stoppoint[0].y)/50);
依此类推,实现由stoppoint[1]到stoppoint[2]和从stoppoint[2]返回stoppoint[0]就较为简单了:
//由stoppoint[1] 到stoppoint[2]
LineRunner.x+=((stoppoint[2].x-stoppoint[1].x)/50);
LineRunner.y+=((stoppoint[2].y-stoppoint[1].y)/50);
//从stoppoint[2]返回stoppoint[0]
LineRunner.x+=((stoppoint[0].x-stoppoint[2].x)/50);
LineRunner.y+=((stoppoint[0].y-stoppoint[2].y)/50);
但目前还不能将上述代码直接写入编辑器运行,因为现有代码还缺少对三个运动阶段的控制。