Одним из бонусов в моей игре является уменьшение размера основного спрайта.
Таким образом, ради памяти, вместо того, чтобы перебирать sprite.scale через каждый кадр, я сохранил спрайт в процентном размере ниже исходного спрайта и просто хочу его заменить. Затем, когда происходит «смерть» или таймер истекает, возвращается оригинальный спрайт.
Итак, я использую этот код, чтобы сделать его маленьким:
[player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-small.png"]];
и этот код для возврата к нормальному состоянию:
[player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-orig.png"]];
однако оригинальное изображение (как в init, так и при сбросе) выглядит нормально. Но когда я изменяю его на новый спрайт (который имеет размеры ровно 75% от исходного), он меняет его, но показывает только квадрант нового спрайта, но с исходными размерами.
Я пытался изменить sprite.contentsize перед повторным текстированием спрайта, но все, что было сделано, это изменило размер, но не повлияло на проблему с испорчением изображения.
Вот несколько наглядных примеров:
Оригинал:
Retextured Image с модификацией contentSize:
Восстановлено изображение в исходном изображении с некорректным сбросом contentSize (упс, но это совсем не проблема - я просто забыл прочитать код размера):
PS - у меня есть версии "-hd.png" всех моих спрайтов, так что я просто хотел добавить то, что хотел знать каждый (изображения и тестирование до сих пор проводились только на симуляторе "nonretina").
СПАСИБО!
РЕДАКТИРОВАТЬ: проблема возникает также во время тестирования на симуляторе сетчатки.