initWithSize与didMoveToView相比

时间:2015-02-04 16:35:45

标签: sprite-kit

我似乎无法理解为什么initWithSize和didMoveToView会显示不同的结果。

-(id) initWithSize:(CGSize)size {

if (self = [super initWithSize:size]) {
    /* Setup your scene here */

    self.backgroundColor = [SKColor colorWithRed:94.0/255.0 green:63.0/255.0 blue:107.0/255.0 alpha:1.0];

    CGSize _winSize = CGSizeMake(size.width, size.height);

    SKSpriteNode *_playerSprite = [SKSpriteNode spriteNodeWithImageNamed:@"Player"];
    _playerSprite.position = CGPointMake(_winSize.width - 50.0f, 60.0f);

    [self addChild:_playerSprite];


}
return self;   
}

当方向为横向时,这会在左下角显示我的精灵

-(void)didMoveToView:(SKView *)view {
self.backgroundColor = [SKColor colorWithRed:94.0/255.0 green:63.0/255.0 blue:107.0/255.0 alpha:1.0];

    CGSize _winSize = CGSizeMake(view.frame.size.width, view.frame.size.height);

    SKSpriteNode *_playerSprite = [SKSpriteNode spriteNodeWithImageNamed:@"Player"];
    _playerSprite.position = CGPointMake(_winSize.width - 50.0f, 60.0f);

    [self addChild:_playerSprite];

这会在场景的底部中间显示我的精灵,并在横向上显示方向。 我不明白为什么我会得到两个不同的职位。

1 个答案:

答案 0 :(得分:0)

SpriteKit不检查init方法中的方向。这只发生在后续方法中。

来自YMC博客的此article处理“设置正确的场景维度”,并可能在此问题上添加一些额外的清晰度。