为了说明我现在有类似使用Java如何绘制一条直线上的精灵路径?
int startX,endX,currX;
int startY,endY,currY;
public void updatePos(){
if(currX<=endX){
currX+=1;
}
//Same for y
我可以看到,我不想要移动x和y各自时间是相同的,但不知道如何工作了我应该做的多少来确定每个人都应该进行调整。
任何想法
也许这将有助于澄清
想象我开始在这些COORDS (0,0) ,我想,如果我去 (18,10)
增加我的x和y,直到他们到达所需的目标为止,精灵向上向上移动,然后在屏幕上向右移动,然后静止在正确的位置。
我想要的行为是它驶向目的地点单一方向(沿三角形的splope如果你愿意)
进出口寻找如何找到我的下一个点的集合建议
您可以在下面使用我的答案,并根据比率(endX - startX):(endY - startY)...即18:10或1.8:1来设置精灵速度。例如,您可以将dx设置为1.8像素/ ms,dy设置为1像素/ ms。您应该考虑将位置和速度存储为双精度而不是整数。由于你的精灵以不连续的步骤“跳跃”,所以你需要检查它是否超出了(18,10)的结束位置,但是你会保证它会穿越这个点(除去任何舍入误差)。 – Adamski 2010-04-13 10:48:20