나는 아이폰 OS에 대한 SpriteKit 게임을 개발하고 있어요 내가 세로 응용 프로그램을 만들고 싶어하지만 나는 레이 Wenderlich 튜토리얼 (스페이스 슈터 SpriteKit)시차 스크롤 스프라이트 키트
를 읽고 게임을 만들 배우고 모드에서 배경을 위에서 아래로 옮기고 싶습니다.
#pragma mark - TBD - Game Backgrounds
//1
NSArray *parallaxBackgroundNames = @[@"bg_galaxy.png", @"bg_planetsunrise.png",
@"bg_spacialanomaly.png", @"bg_spacialanomaly2.png"];
CGSize planetSizes = CGSizeMake(200.0, 200.0);
//2
_parallaxNodeBackgrounds = [[FMMParallaxNode alloc] initWithBackgrounds:parallaxBackgroundNames
size:planetSizes
pointsPerSecondSpeed:10.0];
//3
_parallaxNodeBackgrounds.position = CGPointMake(size.width/2.0, size.height/2.0);
//4
[_parallaxNodeBackgrounds randomizeNodesPositions];
//5
[self addChild:_parallaxNodeBackgrounds];
//6
NSArray *parallaxBackground2Names = @[@"bg_front_spacedust.png",@"bg_front_spacedust.png"];
_parallaxSpaceDust = [[FMMParallaxNode alloc] initWithBackgrounds:parallaxBackground2Names
size:size
pointsPerSecondSpeed:25.0];
_parallaxSpaceDust.position = CGPointMake(0,0);
[self addChild:_parallaxSpaceDust];
편집 :
내가 위에서 아래로 이동할 수 있어요하지만이 부드럽게 움직 나던.
#pragma mark - TBD - Game Backgrounds
for (int i = 0; i < 2; i++) {
SKSpriteNode * bg = [SKSpriteNode spriteNodeWithImageNamed:@"background"];
bg.anchorPoint = CGPointZero;
bg.position = CGPointMake(0, i * bg.size.height);
bg.name = @"background";
[self addChild:bg];
}
-(void)update:(NSTimeInterval)currentTime {
[self enumerateChildNodesWithName:@"background" usingBlock: ^(SKNode *node, BOOL *stop) {
SKSpriteNode *bg = (SKSpriteNode *) node;
bg.position = CGPointMake(bg.position.x, bg.position.y-5);
if (bg.position.y <= -bg.size.height) {
bg.position = CGPointMake(bg.position.x , bg.position.y + bg.size.height * 2);
}
}];
}
SO 사용자는 코드를 작성하지 않습니다. 먼저 직접 구현하려고 시도하고, 문제가 발생하면 시도한 내용과 특정 문제 또는 작업을 이해하지 못한 부분을 알려주십시오. – LearnCocos2D
필자는 위에서 아래로 성공적으로 만들었지 만, Ray 튜토리얼에서 가로 모드처럼 부드럽게 움직이지는 않습니다. 코드를 업데이트하겠습니다. –