Я пытаюсь получить текущую позицию слоя, добавленного в качестве дочернего в сцену, когда происходит переход сцены. Переход представляет собой отредактированный переход Cocos2D, который перемещает слой за пределы экрана, пока появляется новый. Я создал свою собственную реализацию внутри CCActionEase с методом обновления:
#import "JoinedMapsScene.h"
#import "JoinedMapsLayer.h"
@implementation CCEaseInWithPercentMult
-(void) update: (ccTime) t
{
[other update: powf(t,rate)];
CCScene * scene = [[CCDirector sharedDirector] runningScene];
CCNode* layer = [scene getChildByTag:0];
NSLog(@"% .2f",layer.position.x); //returns 0
NSLog(@"% .2f",layer.position.y); //returns 0
}
Однако они возвращают 0, когда происходит переход. Предположительно, потому что я получаю позицию относительно себя?
ИЗМЕНИТЬ:
Я узнал, что это не сработает. Я правильно получил доступ к своей текущей сцене, указав на правильный класс, сделав это:
JoinedMapsScene * scene = (JoinedMapsScene *)[[CCDirector sharedDirector] runningScene];
И вызывая мой предполагаемый метод, делая это:
[сцена getJoinedMapsLayerPosition];
К моему удивлению, пока происходит переход, текущая runningScene является моим классом перехода!
Это дает мне это исключение: -[ExitLTransition getJoinedMapsLayerPosition]: нераспознанный селектор отправлен в экземпляр 0x5e4e20
Мне нужно найти альтернативный способ сделать это.