스프라이트 키트 엔진을 사용하고 있습니다. initWithSize
에 코드를 작성했지만 업데이트 이후에 initWithSize
이 자동으로 호출되지 않고 대신 viewDidLoad
이 호출됩니다. 내가 대신 initWithSize
의, initWithCoder
이 사용했다는 것을 알고있어, 그래서 난의 코드를 변경 :Xcode 6에서 initWithCoder가 예상대로 작동하지 않습니까?
-(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
에서 사용한 코드와 정확히 일치합니까?
추 신 : 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에 붙여 넣었습니다. 외륜 개체를 만드는 것 같지 않습니다.
도와주세요!
그렇지 않으면 우리는 내가 프로젝트로 가져온 이미지에서 스프라이트 만들려면 다음 코드를 사용하고이 – LearnCocos2D
라고 가져 오지 왜 당신에게 말할 수없는, 스프라이트를 생성하는 코드를 게시 : SKSpriteNode * 패를 = [SKSpriteNode spriteNodeWithImageNamed : @ "패들"]; paddle.position = CGPointMake (150, 100); paddle.physicsBody.dynamic = NO; [self addChild : paddle]; –
skspritenode에는 initWithSize 이니셜 라이저가 없습니다. SKScene – LearnCocos2D