Я использую двигатель Sprite Kit. Я использовал код в initWithSize
, но с момента его обновления initWithSize
не вызывается автоматически, вместо этого вызывается viewDidLoad
. Я должен знать, что вместо initWithSize
, initWithCoder
пришлось использовать, поэтому я изменил код из:initWithCoder не работает должным образом в Xcode 6?
-(id) initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor blueColor];
SKSpriteNode *paddle = [SKSpriteNode spriteNodeWithImageNamed:@"paddle"];
paddle.position = CGPointMake(150, 100);
paddle.physicsBody.dynamic = NO;
[self addChild:paddle];
}
return self;
}
к:
-(instancetype)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
self.backgroundColor = [SKColor blueColor];
SKSpriteNode *paddle = [SKSpriteNode spriteNodeWithImageNamed:@"paddle"];
paddle.position = CGPointMake(150, 100);
paddle.physicsBody.dynamic = NO;
[self addChild:paddle];
}
return self;
}
Теперь цвет сцены синеет, но я я не могу добавить спрайты на сцену. Я также не ошибаюсь при создании.
Есть ли какие-то изменения, которые я должен внести в initWithCoder
? (Если да, уточните и уточните)
Может ли initWithCoder
использовать ТОЧНО тот же код, что и мы в initWithSize
?
PS: Вот полный код, который у меня есть в GameScene.m, и у меня нет другой сцены.
#import "GameScene.h"
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
/* Setup your scene here */
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
SKSpriteNode *paddle = [SKSpriteNode spriteNodeWithImageNamed:@"paddle"];
paddle.position = CGPointMake(150, 100);
paddle.physicsBody.dynamic = NO;
[self addChild:paddle];
}
return self;
}
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
}
@end
И я просто скопировал и вставил код из initWithSize в initWithCoder. Кажется, он не создает объект paddle.
Пожалуйста, помогите!
разместить код, который создает спрайт, в противном случае мы не можем сказать вам, почему это не вызывалось – LearnCocos2D
Я использую следующий код для создания спрайтов из образа импортированного в проект: SKSpriteNode * лопатка = [SKSpriteNode spriteNodeWithImageNamed: @ "paddle"]; paddle.position = CGPointMake (150, 100); paddle.physicsBody.dynamic = NO; [self addChild: paddle]; –
skspritenode не имеет инициализатора initWithSize, вы, вероятно, ошибаетесь в нем с помощью SKScene – LearnCocos2D