本質上,當我有一個CCLayer
用於背景和平臺精靈和另一個用於玩家精靈和HUD時,如果我想讓我的相機始終居於玩家的中心位置,應該如何調用CCFollow
同一層中的HUD也相應移動?Cocos2d CCFollow當有多個圖層
現在背景圖層是CCLayer
的子類,它具有用於在環境中繪製對象的CCSpriteBatchNode
。它包含一個實例變量CCLayer *HudLayer
,它有一個CCMenu
和另一個CCSpriteBatchNode
用於播放器動畫精靈。他們都是CCScene
的直接子女,意思是HudLayer
不是BackgroundLayer
的子女。我現在將CCFollow
稱爲[self runAction:[CCFollow actionWithTarget:playerSprite worldBoundary:worldRect]]
,其中self
是BackgroundLayer
。
攝像機正確地跟隨玩家的box2d物理主體,菜單也隨之移動,但是每當攝像機移動時,讓我們說到右側,玩家精靈向右移動兩次,留下它的物理身後。所以在向右移動一下之後,playerSprite就不在屏幕上了。 playerSprite.pos
和playerSprite.position
似乎沒有錯,但。
我試過在不同的地方撥打CCFollow
,但是HUD拒絕移動或者相機不動或玩家移動奇怪。它出什麼問題了?
我建議讓玩家精靈和HUD分開。這樣你可以跟蹤精靈的運動,並保持HUD的位置相同。你應該移動每層而不是整個場景。通過這樣做,hud將保持原位 –
謝謝布蘭登!幾個小時前我解決了我的問題,這正是你所說的。我把玩家精靈放在背景圖層上,現在一切正常。我想我需要刷新一些cocos2d基礎知識。 – wc373
我很高興提供幫助 –