Странное поведение при масштабировании - PullRequest
1 голос
/ 22 ноября 2011

У меня есть собственный класс со спрайтом.

Спрайт - это анимация, созданная с помощью Zwoptex. Я получил сетчатку и стандартные изображения в порядке.

Я поставил свой класс посреди сцены. И, по какой-то причине, спрайт отображается с очень маленьким размером.

Я думал, что это может быть из-за масштабирования (хотя я никогда не масштабирую спрайт). Поэтому я решил поставить два NSLogs:

    NSLog(@"%f",enemy2.scale);
    NSLog(@"%f",enemy2.sprite.scale);

Один говорит мне о масштабе самого моего пользовательского класса, а другой - о масштабе самого спрайта.

Однако, когда я ставлю эти две строки кода , , появляется спрайт с ожидаемым размером (больше) .

И результат NSLog равен 1,0.

Почему? Есть идеи?

1 Ответ

0 голосов
/ 23 ноября 2011

Если метод получения масштаба не был реализован и не изменяет переменную scale_ instance, это не должно происходить.

Первоначально я бы сказал, что малые размеры спрайтов, похоже, указывают на то, что вы загружаете изображения SD на устройство Retina, а не изображения HD. Если вы используете текстурный атлас, обязательно назовите свои ресурсы SD и HD следующим образом:

// SD images
textureatlas.png
textureatlas.plist
--> player.png
--> enemy.png

// HD images
textureatlas-hd.png
textureatlas-hd.plist
--> player.png       // no -HD suffix!
--> enemy.png        // no -HD suffix!

Распространенной ошибкой является также добавление суффиксных кадров внутри текстурного атласа. Поэтому, если ваши спрайт-кадры в текстурном атласе HD имеют имена player-hd.png и enemy-hd.png, то Cocos2D не найдет их и вернется к загрузке изображений SD.

Следует отметить, что TexturePacker обнаружит и может автоматически исправить это для вас. В прошлый раз, когда я использовал Zwoptex , это позволило бы вам создавать такие некорректные текстурные атласы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...