SKSpriteNode отображается в iOS 8, а не в iOS 7

#ios #objective-c #sprite-kit #xcode6

#iOS #objective-c #sprite-kit #xcode6

Вопрос:

У меня есть SKSpriteNode с именем ship, он создан следующим образом :

 ship = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"Spaceship"]];
ship.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:ship.frame];
ship.xScale = .5;
ship.yScale = .5;
ship.alpha = 1.0f;
ship.position = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
[self addChild:ship];
  

Корабль отлично отображается в симуляторе iOS 8 и на моем iPhone 5 под управлением iOS 8, но невидим в iOS 7.

В методе обновления я помещаю эти журналы :

 NSLog(@"Ship : %@", ship);
NSLog(@"Image : %@", ship.texture);
NSLog(@"Alpha : %.2f", ship.alpha);
NSLog(@"Parent : %@", ship.parent);
  

И я получаю этот вывод :

 Ship : <SKSpriteNode> name:'(null)' texture:[<SKTexture> 'Spaceship' (100 x 100)] position:{160, 284} size:{25, 25} rotation:0.00
Image : <SKTexture> 'Spaceship' (100 x 100)
Alpha : 1.00
Parent : <SKScene> name:'(null)' frame:{{0, 0}, {320, 568}}
  

Кажется, что все в порядке, и этот же журнал многократно вызывается при каждом обновлении, пока корабль, который вообще не виден, не исчезнет с экрана, и вызывается код для его удаления и всего остального.

Без какого-либо взаимодействия с пользователем в iOS 8 с кораблем происходит то, что он появляется в середине экрана, перемещается вверх, а затем, когда он выходит из кадра, игра заканчивается. Насколько я могу судить, то же самое происходит и в iOS 7, за исключением того, что корабль невидим. Кадр правильный, он реагирует на взаимодействие с пользователем, он просто не отображается.

Комментарии:

1. XCode 6 сейчас находится в стадии бета-тестирования. Это может быть проблемой. Вы пробовали запускать тот же код в XCode 5 с симулятором iOS 7 или устройством?

2. Вот и все, даже не думал об этом, спасибо!

3. Также было бы целесообразно отправить отчет об ошибке в Apple.

Ответ №1:

XCode 6 сейчас находится в стадии бета-тестирования. Это может быть проблемой. Вам следует попробовать запустить тот же код в XCode 5 с симулятором iOS 7 или устройством.

Кроме того, вы можете отправить отчет об ошибке в Apple здесь.