2011-11-30 67 views
0

如果這個問題是重複的,請糾正我。 我想要做的是在屏幕上有一個可以拿槍的角色。 所以如果背景移動,角色應該隨之移動。 如果角色移動,槍應與他/她一起移動。Cocos2d雪碧鏈接

有誰知道如何做到這一點? 對不起,我是一個新手

親切的問候

+0

這裏是我的猜測:因爲Cocos2d中的所有內容都是節點,所以如果字符節點是屏幕節點的子節點,那麼當屏幕移動時,字符隨之移動。我對麼? –

回答

0

你可以使用CCLayer來做你想做的事情。

A CCLayer是你想要作爲一個組來控制的所有精靈的一種「容器」。例如,您創建兩個CCSprites並將它們添加到CCLayer;您可以在相對於CCLayer的座標中定義精靈位置,並且在CCLayer移動時,精靈會隨之移動。

對於不同的對象組,也可以有多個圖層。例如,如果你有更多的角色,他們都可以進入同一層。

A CCLayerCCNode派生而來,所以你可以通過將你的角色,武器和背景添加到同一個節點來做同樣的事情;但我會建議有兩個精靈(角色和武器)的節點,以及背景精靈和角色+武器節點的圖層。

CCNode相比,A CCLayer增加了處理加速度計(如果您希望您的角色跟隨它)和觸摸的可能性。

+0

任何CCNode派生類都可以用於分組/分層節點,CCLayer只是一個選項。在這種情況下,最好將槍CCSprite添加到字符CCSprite中,並將字符添加到圖層,節點或場景中。 – LearnCocos2D

+0

@ LearnCocos2D:在我看來,我也表示OP可以決定並使用CCNode而不是CCSprite;我已經概述了CCLayer除了CCNode之外還提供了什麼,以便OP可以決定什麼是最適合他的。現在,我明白你提出了一個不同的選擇,但爲什麼倒票呢?此外,我會請你仔細閱讀我的這句話:「但是我會建議爲這兩個精靈(角色和武器)以及背景精靈和角色+武器節點設置一個節點」。你真的看到與你有很大的不同嗎? – sergio

+0

@sergio:我同意你的意見 –

0

您可以實例化一個新的CCNode,並調用它的addChild方法。通常你會繼承CCNode並稱之爲Character或其他。父CCNode將包含所有的精靈,並且它們將隨之移動。 CCSprite也是CCNode的一個子類。

CCNode *character = [[[CCNode alloc] init] autorelease]; 
[character addChild:[CCSprite spriteWithFile:@"body.png"]]; 
[character addChild:[CCSprite spriteWithFile:@"gun.png"]]; 
+0

同意,但它可能會更好地將槍添加到身體。如果身體旋轉或縮放,則槍保持相同的偏移量。 – LearnCocos2D