Отразить CCSprite по горизонтали после добавления в слой - PullRequest
4 голосов
/ 08 февраля 2012

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

Я пытаюсь выяснить: if (target.x < start.x), мне нужно перевернуть спрайт по горизонтали.

Проблема в том, что после создания спрайта и addChild для слоя я не могу установить свойство flipX спрайта, используя [sprite setFlipX].

Заблокирован ли setFlipX после добавления спрайта в слой? Как я могу обойти это? Это мое единственное решение для анимации?

Ответы [ 2 ]

5 голосов
/ 09 февраля 2012

Чтобы перевернуть и сохранить любое предыдущее масштабирование, используйте:

sprite.scaleX *= -1.f;

После того как вы это сделали, вам больше не следует использовать свойство sprite.scale, так как оно включает утверждение scaleX == scaleY.

3 голосов
/ 08 февраля 2012

Попробуйте перевернуть его, установив scaleX на -1:

sprite.scaleX = -1;

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

...