스프라이트가 화면 밖으로 이동하면 스프라이트를 다시 생성하려고 시도하지만 운이 없습니다.스프라이트 키트에서 스프라이트가 다시 생성되지 않습니다.
#import "MyScene.h"
@implementation MyScene
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
self.backgroundColor = [SKColor colorWithRed:0.05 green:0.15 blue:0.2 alpha:1.0];
SKSpriteNode *pole = [SKSpriteNode spriteNodeWithImageNamed:(@"pole")];
bamboo.position = CGPointMake (30, 0);
bamboo.size = CGSizeMake(15, 1136);
[self addChild: pole];
SKSpriteNode *pole2 = [SKSpriteNode spriteNodeWithImageNamed:(@"pole")];
pole2.position = CGPointMake (290, 0);
pole2.size = CGSizeMake(15, 1136);
[self addChild: pole2];
SKSpriteNode *spike = [SKSpriteNode spriteNodeWithImageNamed:(@"spike")];
spike.position = CGPointMake (45, 600);
spike.size = CGSizeMake(15, 75);
SKAction *moveDown = [SKAction moveByX:(0) y:(-10) duration:(.05)];
[spike runAction:[SKAction repeatActionForever:moveDown]];
[self addChild: spike];
}
return self;
}
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
if (_spike.position.y < 250) {
_spike.position = CGPointMake(45, 600);
}
}
@end
무엇이 문제 일 수 있습니까? Xcode는 나에게 오류를주지 않는다. "스파이크 (spike)"노드는 단순히 화면을 벗어나서 스스로 리셋하지 않는다. 조건부 값을 변경했지만 동일한 문제가 발생합니다. 조건부가 무시되는 것과 같습니다.
조건부로 스파이크 위치를 확인하는 것은 모든 프레임이 아니라 스파이크를 만들 때이 코드 블록에서만 발생합니다. 맞습니까? – prototypical
@protypypical 그건 의미가 있습니다. 모든 프레임을 업데이트하려면 조건부를 어디에 배치해야합니까? currentTime update 메소드에 아무 소용이 없다. – cocoamoco
예, 업데이트 방법을 지정하면 제대로 작동합니다. 아마도 잘못 구현했을 것입니다. 현재 응답을 확인하십시오. 또한 학습의 초기 단계에서 디버거에 대해 배우는 것이 좋습니다. 그러면 시간이 많이 절약 될 것입니다. – prototypical