2015-06-27 65 views
0

在SpriteBuilder,每個對象開始於第0幀使對象出現在幀N和SpriteBuilder不是第0幀

我有一些對象會從天上掉下來,但我想他們的下落動畫(物理與重力)在現場稍後開始,而不是在0.

我可以讓對象存在於特定的框架嗎? (即在對象的第一個關鍵幀之前插入空幀),還是我可以讓對象在特定幀之後將物理重力排隊?

TIA

回答

1

你想要做的事情可以用Spritebuilder和代碼混合來完成。無法在Spritebuilder時間軸中動畫/切換任何物理屬性,但您可以設置自己的回調來實現它。要在時間線中添加回調,您可以在SB時間線中的回調字段中按住alt/option +左鍵並雙擊小方塊來設置選擇器。要隱藏一個對象,直到你想顯示它,你可以添加一個'Visible'關鍵幀:在你想要對象顯示的時候設置光標,然後按'v'。

所以,要做你想做的事情,我會取消選中「項目物理」選項卡中的「受重力影響」複選框。(顯然,這會使對象不會掉下來)然後在某個點可見(如果你已經隱藏它,那是)對象,並作出回調是這樣的:

func toggleGravityCallBack() { 
    yourObject.physicsBody.affectedByGravity = true 
} 

希望這有助於

+0

它有幫助,但我發現如何做你正在描述的內容,以及如何獲得代碼中的回調,這是我最後的方法。 – ericosg

+0

對於任何人也在尋找編程回調,他們可以用'CCActionCallBlock'完成。 – ericosg

1
int frameNum = 5; 

CCSpriteFrame* theframe = ((CCAnimationFrame*)[animation.frames objectAtIndex:frameNum]).spriteFrame; 

CCSprite* newSprite = [CCSprite spriteWithSpriteFrame:theframe]; 

這產生開始在動畫幀五個新的精靈。

+0

感謝這一點,但這是否意味着它只能做以編程方式,而不是通過SpriteBuilder? – ericosg

+0

Oooh ...我不知道這部分的答案,我猜「不」,因爲我沒有看到編輯器中的任何地方,你會指定這樣的事情。 – Almo

+0

我還沒有測試過它。我似乎已經找到隱藏的技術,在spritebuilder – ericosg

相關問題