当我通过滚动移动包含所有精灵的图层时,sprits位置不会改变。我希望通过滚动来改变我的精灵位置。请给我一些解决方案。
先谢谢......
答案 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];
我希望这能回答你的问题,因为它不是很清楚。