【发布时间】:2012-10-05 21:37:38
【问题描述】:
我正在尝试在发生场景转换时检索作为子级添加到场景中的图层的当前位置。过渡是经过编辑的 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 * 场景 = (JoinedMapsScene *)[[CCDirector sharedDirector] runningScene];
并通过这样做来调用我假设的方法:
[场景getJoinedMapsLayerPosition];
令我惊讶的是,在转换发生时,当前 runningScene 是我的转换类!
它给了我这个例外: -[ExitLTransition getJoinedMapsLayerPosition]:无法识别的选择器发送到实例 0x5e4e20
我需要找出另一种方法。
【问题讨论】:
标签: cocos2d-iphone position layer scene