2014-09-01 2 views
0

Im немного смущен. Я пытаюсь переместить один CCSprite на позицию другого CCSprite. Я решил, что это будет просто, но CCSprite не позиционируется правильно. У меня 2 CCSprites:Получить позицию CCSprite

//Get Position of EMPTY SPRITE 
CCSprite *sprite = (CCSprite*)[self getChildByName:[NSString stringWithFormat:@"%d", kEMPTY] recursively:NO]; 

//GET DRAGGED SQUARE 
CCSprite *spriteMove = (CCSprite*)[self getChildByName:[NSString stringWithFormat:@"%d", DragStartSquare] recursively:NO]; 

Я тогда пытаюсь получить позицию пустой спрайт (его на самом деле не пусто), делая

CGPoint worldCoord = [sprite convertToWorldSpace: sprite.position]; 

Я потом анимировать его:

id action1 = [CCActionMoveTo actionWithDuration:duration position:worldCoord]; 

Отправляет спрайт с экрана. Что я делаю не так?

ответ

0

Вам нужно преобразовать обратно в пространство узла целевого спрайта:

CGPoint targetNodeCoord = [spriteMove convertToNodeSpace: [sprite convertToWorldSpace: sprite.position]]; 
CCAction *action1 = [CCActionMoveTo actionWithDuration:duration position:targetNodeCoord]; 
+0

Спасибо. Его ближе, но все же позиционирует его неправильно. Это выше. – Allreadyhome

+0

Являются ли два спрайта одинакового размера? У них есть одна и та же опорная точка? Кроме того, только что заметил, что спрайты - это дети одного и того же родительского узла, поэтому я думаю, что вы можете полностью пропустить все преобразования координат. – godel9

Смежные вопросы