Недавно я нашел руководство о том, как создать игру вроде Flappy Bird с помощью SpriteKit. Вместо реализации тап-механизма я использовал акселерометр устройства, чтобы перемещать птицу вправо и влево. Моя проблема сейчас связана с генерирующими трубами. Метод, использованный в уроке, создает трубы по оси x, а не по оси y, что я и хочу сделать.
-(void)createPipes
{
SKTexture* _pipeTexture1 = [SKTexture textureWithImageNamed:@"Pipe1"];
_pipeTexture1.filteringMode = SKTextureFilteringNearest;
SKTexture* _pipeTexture2 = [SKTexture textureWithImageNamed:@"Pipe2"];
_pipeTexture2.filteringMode = SKTextureFilteringNearest;
SKNode* pipePair = [SKNode node];
pipePair.position = CGPointMake( self.frame.size.width + _pipeTexture1.size.width * 2, 0 );
pipePair.zPosition = -10;
CGFloat y = arc4random() % (NSInteger)( self.frame.size.height / 3 );
SKSpriteNode* pipe1 = [SKSpriteNode spriteNodeWithTexture:_pipeTexture1];
[pipe1 setScale:2];
pipe1.position = CGPointMake( self.frame.size.width/2 -100, self.frame.size.height+250 );
pipe1.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:pipe1.size];
pipe1.physicsBody.dynamic = NO;
[pipePair addChild:pipe1];
SKSpriteNode* pipe2 = [SKSpriteNode spriteNodeWithTexture:_pipeTexture2];
[pipe2 setScale:2];
pipe2.position = CGPointMake( self.frame.size.width/2 +100, self.frame.size.height+250 );
pipe2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:pipe2.size];
pipe2.physicsBody.dynamic = NO;
[pipePair addChild:pipe2];
SKAction* movePipes = [SKAction repeatActionForever:[SKAction moveByX:0 y:-2 duration:0.02]];
[pipePair runAction:movePipes];
[self addChild:pipePair];
}
Моя идея состоит в том, чтобы генерировать трубы, которые падают с «неба», и птица должна перемещаться между трубами, чтобы продолжать жить. Я надеюсь, что описание моей проблемы было очень ясным :) Спасибо
Пояснение: трубы падают с «неба», но проблема заключается в их расположении на экране. Когда я запускаю проект, между правой трубой и левой нет зазора. Я вижу только падающую гигантскую трубу, заполняющую по вертикали значительную часть экрана.