J'essaie de récupérer la position actuelle de la couche ajoutée en tant qu'enfant dans une scène pendant la transition d'une scène. La transition est une transition Cocos2D modifiée qui fait glisser la couche hors de l'écran pendant qu'une nouvelle apparaît. J'ai créé ma propre mise en œuvre à l'intérieur CCActionEase avec une méthode de mise à jour:Cocos2D: Obtenir la position de la couche dans la scène d'une autre classe
#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
}
Cependant ceux-ci reviennent 0 lorsque la transition se produit. Vraisemblablement parce que j'obtiens la position par rapport à elle-même?
EDIT:
J'ai découvert cela ne fonctionnera pas. J'ai correctement accédé à ma scène actuelle en pointant la bonne classe en faisant ceci:
JoinedMapsScene * scène = (JoinedMapsScene *) [[CCDirector sharedDirector] runningScene];
Et d'appeler ma méthode supposée en faisant ceci:
[scène getJoinedMapsLayerPosition]; A ma grande surprise, pendant la transition, le runningScene actuel est ma classe de transition!
Il donne ma cette exception: - [ExitLTransition getJoinedMapsLayerPosition]: sélecteur non reconnu envoyé à l'instance 0x5e4e20
Je dois trouver une autre façon de le faire.