У меня есть приложение cocos2d, которое отлично работает на сетчатке iPads и iPhones, и я только что вышел и купил iPad pro, чтобы убедиться, что он работает нормально, и, конечно же, большое количество вещей отображается неправильно.setScale: метод не работает на iPad pro?
После выполнения некоторых отладки я решил, что это потому, что многие элементы имеют шкалу 0 ... Так что я сделал немного больше отладки и, например, есть одна строка в моем коде, что делает:
self.scale = 1.0f;
Если я поставить точку останова на этой линии, а затем шаг в инкубационном функции, что мой класс наследуется от CCNode:
-(void) setScale:(float) s
{
_scaleX = _scaleY = s;
_isTransformDirty = _isInverseDirty = YES;
}
а .. затем в отладчике я смотрю на то, что Ивар _scaleX и _scaleY становятся устанавливается:
(lldb) expr s
(float) $0 = 0
Что?!?!?!? !!?! ?? !!?!? Как в мире 1.0 попадает в эту функцию и превращается в 0 ??? Почему iPad защищает все законы информатики?
Если бы я это сделать то же самое на сетчатке IPad или iPhone 5 или iPhone 6 или iPhone 6 плюс, масштаб 1,0, НЕ 0.