我想操縱一個對象。當它靠近另一個物體時,讓我們說一個地球儀,我希望地球儀對原始物體有一個引力。我知道我應該使用CCBezierTo
,所以這不是一個編程問題,因爲它是一個數學問題。Cocos2D圍繞對象的貝塞爾曲線,就像是通過重力
在數學上,我怎麼能找出貝塞爾曲線的三個點(1,2和end),並根據它的距離給它一個權重(更遠=更小的拉力)。我已經在變量中映射了距離。
想想太空船在月球周圍彈跳。
代碼:
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];
爲什麼你不只是施加一個力矢量到與物體距離平方成正比的拋射體?即爲什麼不只是「做重力」?假設射彈不直接朝向物體的中心,路徑將自然彎曲。 – Robinson 2011-06-17 10:40:31
http://oreilly.com/catalog/9780596000066 – 2011-06-29 03:43:05