移动Sprits位置与位置问题

时间:2011-05-04 13:59:57

标签: cocos2d-iphone

当我通过滚动移动包含所有精灵的图层时,sprits位置不会改变。我希望通过滚动来改变我的精灵位置。请给我一些解决方案。

先谢谢......

2 个答案:

答案 0 :(得分: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包含所有sprits。这是我的图层移动到新位置的代码。所有的sprits也随着层移动,但是它们的位置相对于层的移动没有​​变化。当我触摸那个可能的时候,精灵会移动。但是我想谈谈移动它们的精神。

答案 1 :(得分:0)

如果在不移动子子画面的情况下移动图层,sprite.position即使在移动图层后也会返回相同的值,因为它相对于节​​点空间(图层)返回它。要根据世界或场景获取精灵的位置,您需要将其转换为世界空间:

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

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