我正在尝试操纵一个对象。当它靠近另一个物体(比如地球仪)时,我希望该物体对原始对象产生引力。我知道应该使用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];