我正在尝试操纵一个对象。当它靠近另一个物体时,比方说地球,我希望地球对原始物体产生引力。我知道我应该使用CCBezierTo
,所以这不是一个编程问题,而是一个数学问题。
从数学上讲,我如何计算贝塞尔曲线的三个点(1、2 和末端)并根据其距离赋予它一个权重(越远 = 拉力越小)。我已经在变量中绘制了距离。
想象一艘宇宙飞船在月球周围弹弓。
代码:
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(projectile.position.x + 10, projectile.position.y + 20);
bezier.controlPoint_2 = ccp(projectile.position.x + 20, projectile.position.y + 40);
bezier.endPosition = ccp(projectile.position.x + 30, projectile.position.y+60);
id bezierAction = [CCBezierTo actionWithDuration:1 bezier:bezier];
[projectile stopAllActions];
[projectile runAction: bezierAction];