#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 здесь.