2012-12-07 31 views
1

我做了這個動畫,我是從一個人的頭頂上移動到他身體中心的一隻手臂。從手臂邊緣到人體中點的距離是一個圓的半徑,因此無論該手臂是在他的右側,左側,上方,距離是完全相同的,此外,動畫是無論手臂從中心向何方向移動都完全一樣。如果只有4個攻擊方向,我知道我可以製作4種不同的動畫,但在我的遊戲中,手臂可以延伸到無限的方向,因爲用戶滑動並且手臂沿着該方向延伸。如何在cocos2d中以指定角度播放動畫?

無論手臂伸出的方向如何,同一個動畫只能以不同的角度進行操作(動畫是用手臂正上方的手臂製作的)。

我可以計算手臂伸展的角度,但是如何知道我的意思,我該如何在這個角度播放動畫?

回答

0

好,如果設置了動畫的第一精靈的旋轉,框架的整個陣列將被傾斜,因爲這個例子從我的比賽之一:

CCAnimation *anim; 
NSString *frameName; 
NSString *animName; 

anim = [self getAnimationFor:mapAnimationTypeIdle]; 
animName = [self getAnimationNameFor:mapAnimationTypeIdle]; 
frameName = [self getFrameNameForAnimationNamed:animName andFrame:1]; 
CCAction *forever = [CCRepeatForever actionWithAction: 
         [CCAnimate actionWithAnimation:anim] 
        ]; 
_soldierAnim = 
    [CCSprite spriteWithSpriteFrame: 
     [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:frameName] 
    ]; 
[self addChild:_soldierAnim z:0 tag:_tagForSoldierAnimation]; 
_soldierAnim.rotation=22; 
[_soldierAnim runAction:forever]; 

我只是測試這一點,將整個動畫傾斜22度。

+0

難道我只是叫做「getAnimationFor」的方法,並讓他們返回「mapAnimationTypeIdle」? – iNeedHelp

+0

這是我目前正在進行的遊戲的一個示例...您可能不需要。我只是爲了測試.rotation是否會起作用。你可以在那裏創建CCAnimation並使用它。在我的情況下,我有很多地圖動畫(一個枚舉我創建mapAnimationTypeE有成員mapAnimationTypeIdle)。 – YvesLeBorg

+0

非常感謝! – iNeedHelp