精靈我有一個精靈:繞錨點
ombreoeuf1 = [CCSprite spriteWithFile:@"mangeurcentremieu3_03.png" ];
ombreoeuf1.position = ccp(240,160);
[self addChild:ombreoeuf1];
而且我想不斷旋轉它周圍的錨點。我該怎麼做?
精靈我有一個精靈:繞錨點
ombreoeuf1 = [CCSprite spriteWithFile:@"mangeurcentremieu3_03.png" ];
ombreoeuf1.position = ccp(240,160);
[self addChild:ombreoeuf1];
而且我想不斷旋轉它周圍的錨點。我該怎麼做?
可以首先通過設置屬性anchorPoint
,例如設置錨點:
[ombreoeuf1 setAnchorPoint:ccp(0,0)]
然後通過設置另一個屬性rotation
設置旋轉(以度爲單位):
[ombreoeuf1 setRotation:90]
anchorPoint
和rotation
都是CCSprite的父親CCNode class的屬性。
更新
根據您的意見,似乎你想要的是一個旋轉的精靈,從來沒有停止?這裏是一個讓子畫面旋轉每0.1秒10度的例子:
[sprite runAction:[CCRepeatForever actionWithAction:[CCRotateBy actionWithDuration:0.1 angle:10]]];
CCNode子類的所有轉換都相對做錨點。在所有轉換過程中,anchorPoint將具有相同的位置。例如,如果您將sprite與anchorPoint(0.f,0.f)放置到屏幕的左下角位置(0.f,0.f),然後將其設置爲比例,例如5.f,改造後它將停留在左下角,只是變大。所以所有的旋轉都會自動完成,相對於錨點。
還有一件事。 CCSprite默認擁有anchorPoint(0.5f,0.5f)和一些內容大小,所以您只需將其設置爲另一個即可查看轉換中的更改。如果你想用CCNode做到這一點,你必須將它的relativeToAnchorPoint屬性設置爲YES並手動設置contentSize。
您可以對此使用CCRepeatForever操作。例如,
id rotateAction = [CCRepeatForever actionWithAction:[CCRotateBy actionWithDuration: yourDuration
angle: anyAngleForGivenTime]];
我明白,但我的問題是關於旋轉代碼,我可以讓它無限旋轉? – 2012-04-20 08:54:42
但是,這是一個簡單的旋轉。我想要一個無限的旋轉動畫 – 2012-04-20 08:46:03
@gregrock我已經更新了我的答案。請檢查它是否是你想要的? – Hailei 2012-04-20 08:56:57
最後一個問題:我想知道如果使用這種方法,我的精靈可以在旋轉時檢測觸摸事件 – 2012-04-20 09:04:03