我正在做的是当我在屏幕上拖动手指时,它使用ccTouchesMoved(CCSet * touches,CCEvent * event)将点存储到数组中。
有效
然后在update方法中,如果它在我的单元类中调用move方法,它将单元移动到数组中的第一个点,然后删除它。
有效
我的问题是,当我将手指从A点慢慢移动到B时,与我将手指从A点快速移动到B的速度相比,它会在阵列中存储不同数量的点并且运动不同。
我正试图模仿飞行控制类型的游戏,它始终以相同的速度跟随你的路径。
我的逻辑关闭了,我的方向错了吗?
答案 0 :(得分:0)
可能的解决方案:
解决方案#1可能是最好的。
解决方案#2 将仅在点之间设置最小距离,如果您更快地移动手指,点之间的距离将(可能)增加,具体取决于硬件。
答案 1 :(得分:0)
定义一个常量,例如
#define SPEED 50.0f
然后当您在商店的2点移动时,例如
CCPoint p1 = ccp(10,20);
CCPoint p2 = ccp(40,60);
创建Move时,请使用
CCMoveTo* moveAction = CCMoveTo::create(p2, ccpDistance(p2,p1)/SPEED);