Шкала спрайта в соответствии с вращением.Как правильно рассчитать это для моей ситуации?[Math-iphone-cocos2d] - PullRequest
0 голосов
/ 22 августа 2011

Сначала: Я использую cocos2d для iphone. Но это не так важно для этого вопроса.

Моя проблема сейчас ... Я хочу масштабировать спрайт по оси Y. Я могу сделать это с помощью этой функции:

mySprite.scaleY = myFloatValue;

Я хочу установить значение scaleY, связанное с вращением спрайта.

В некоторых случаях:

Если вращение равно 0, шкала Y равна 0. Если вращение составляет 90, масштаб Y равен 1. Если вращение 180, шкала Y равна 0 Если вращение на 360 градусов, Y равно 0. Если вращение 45, шкала Y равна 0,5.

Еще несколько объяснений: Если мой спрайт вертикальный, значение scaleY равно 1. Если мой спрайт горизонтальный, значение scaleY равно 0.

И для этого мне нужен форум.

Я понял, что работает для углов от 0 до 90:

mySprite.scaleY = вращение / 90.0f;

От углов между 90 и 180 по шкале Y должно идти от 1,0 до 0,0f

Я хочу сделать плавное масштабирование ..

Кстати, ты понял, что я хочу? Если бы не я, я мог бы сделать видео или несколько скриншотов ..

1 Ответ

2 голосов
/ 22 августа 2011

Как насчет mySprite.scaleY = sinf(rotation);

РЕДАКТИРОВАТЬ:

Чтобы сделать его всегда положительным

mySprite.scaleY = fabs(sinf(rotation));

Где вращение в радиан

mySprite.scaleY = fabs(sinf(M_PI * rotation / 180));

Где вращение в градусах

...