2011-05-04 63 views
0

當我通過滾動移動包含所有精靈的圖層時,精靈位置不會改變。我想用滾動來改變我的精靈位置。請給我一些解決方案。移動精靈位置的位置問題

先謝謝了......

+0

你的意思是說,精靈沒有在圖層上移動,或者'sprite.location'返回相同的值?你如何移動圖層?...你能提供代碼 – KDaker 2011-05-04 16:43:33

回答

0
// simple position update 
CGPoint a = [[CCDirector sharedDirector] convertToGL:[touch previousLocationInView:touch.view]]; 
CGPoint b = [[CCDirector sharedDirector] convertToGL:[touch locationInView:touch.view]]; 
CGPoint nowPosition = scrollLayer.position; 
nowPosition.y += (b.y - a.y); 
nowPosition.y = MAX(0, nowPosition.y); 
nowPosition.y = MIN(20, nowPosition.y); 
scrollLayer.position = nowPosition; 

我scrollLayer包含所有的烈酒。這是我的圖層移動到新位置的代碼。所有的精靈也隨着圖層移動,但是它們的位置不會隨着圖層移動而改變。當我觸及那個位置時,精靈會移動。但我想探討移動它們的精靈。

+0

考慮用這些信息編輯你的問題,而不是將它添加爲答案... – Druid 2011-05-05 10:17:39

0

如果移動某個圖層而未移動其子圖元,則sprite.position將返回相同的值,即使在移動該圖層後也會返回相同的值,因爲它將圖層返回爲相對於節點空間(圖層)。要根據你需要將其轉換爲世界空間世界或場景獲得精靈的位置:

CGPoint worldPosition = [self convertToWorldSpace:sprite.position]; 

我希望這回答你的問題,因爲它不是很清楚。