我似乎无法理解为什么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];
这会在场景的底部中间显示我的精灵,并在横向上显示方向。 我不明白为什么我会得到两个不同的职位。
答案 0 :(得分:0)
SpriteKit不检查init方法中的方向。这只发生在后续方法中。
来自YMC博客的此article处理“设置正确的场景维度”,并可能在此问题上添加一些额外的清晰度。