2011-06-17 61 views
1

我在cocos2d中寫了一個遊戲,其中有一個旋轉目標和一個指向目標的箭頭。所以我想和目標同時旋轉箭頭(以創造箭頭與目標身體的移動效果)。目標的角速度爲每秒5 * PI/12度(或每十分之一秒PI/24)。我有一個小片的代碼,但它不能正常工作:Cocos2d圓內點的移動

-(void)rotateArrow { 
    currentAngle += 24*M_PI/180; // it should be in radians 
    float x = sin(currentAngle) * radius + human.position.x; 
    float y = cos(currentAngle) * radius + human.position.y; 
    [arrow runAction:[CCMoveTo actionWithDuration:0.1 position:ccp(x,y)]]; 
} 

半徑是目標和箭頭的尖端的中心之間的距離;

currentAngle初始化爲0,在此方法中以PI/24度遞增(轉換爲弧度);

rotateArrow方法被稱爲每十分之一秒。

我想知道這種情況的幾何或程序實現。非常感謝!

回答

0

看起來您的角度計算可能不正確。

首先,PI/24將是以弧度測量的角度。如果你每0.1秒就這樣做,這意味着360度旋轉需要4.8秒(2 * PI)。

我認爲你需要這樣的:

currentAngle += M_PI/24; 

由於您的角度,弧度已經表示,你不需要通過M_PI/180繁殖。

+0

好的,我做到了,但它是一樣的。 – SpeedyWizard 2011-06-20 12:21:55