2011-05-04 64 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]; 

我希望这回答你的问题,因为它不是很清楚。