Я пытаюсь создать подкласс класса SKNode, используя собственный метод инициализации. Мой пользовательский метод инициализации выглядит так:
//interface
@interface BlocksLayer : SKNode
-(instancetype)initWithDirection(BlocksLayerMotionDirection)direction;
@end
//implementation
-(instancetype)initWithDirection:(BlocksLayerMotionDirection)direction{
self=[super init];
if (self) {
self.direction=direction;
[self makeLayer];
}
return self;
}
-(void)makeLayer{
//scene size has always width=0 and height=0
NSLog(@"%f",self.scene.size.width);
NSLog(@"%f",self.scene.size.height);
}
Когда я инициализирую класс своим пользовательским методом, scene.width и scene.height всегда равны нулю.
Вместо этого, если я использую инициализацию статического метода node, scene.size содержит допустимые значения.
Вы знаете, в чем проблема?
Является ли это правильным способом создания подкласса SKNode и допустимой ли стратегией реализации нестатического пользовательского метода инициализации?
Большое спасибо,
Доменико
SKNode
содержитSKScene
? Я почти уверен, что все наоборот... Значения, которые вы читаете, могут быть действительны только после добавления в сцену, или вы можете просто передать ширину и высоту для использования. - person Gliderman   schedule 15.10.2015