Как я могу создать изогнутую планку здоровья? - PullRequest
0 голосов
/ 22 февраля 2012

Я делаю игру со шкалой здоровья и пытаюсь сделать кривую здоровья изогнутой.

В настоящее время у меня есть линейка, состоящая из 20 сегментов, которые выглядят примерно так в левом нижнем углу окна.экран.

Я хотел бы написать функцию, которая проходит и изменяет масштаб Y каждого из них, чтобы получить изогнутую полосу.

Я могу легко уменьшить их по прямойлиния.Так что это выглядит как треугольник.

Я хочу экспоненциальный спад.

В обычных математических терминах это может быть что-то вроде y = Pa^x.

1 Ответ

4 голосов
/ 22 февраля 2012

Некоторое время назад я разработал игру с изогнутой шкалой здоровья, вот как я ее достиг:

Шаг 1:

Создайте свой изогнутый стержень. Я предлагаю Oval Primitive инструмент:

enter image description here

Нарисуй свой бар. Я предлагаю создать направляющий слой, чтобы продемонстрировать визуальный образ вашего изогнутого сегмента. Скопируйте панель на другой слой и сделайте ее маской, это будет то, что показывает вашу панель здоровья. Маска и сегмент должны быть MovieClips:

enter image description here


Шаг 2:

Установите точку регистрации вашей маски в центр вашего круга. Ваша маска будет вращаться вокруг этой точки, чтобы показать ваш фактический бар. Поверните маску так, чтобы она находилась слева от фактической гистограммы:

enter image description here


Шаг 3:

Создайте анимацию вашей маски, вращающейся по часовой стрелке на 100 кадров (добавьте больше кадров для более точной прогрессии). Вы даже можете применить анимацию движения к графике, где цвет меняется с красного на зеленый по мере заполнения и т. Д.

enter image description here


Шаг 4:

Используйте gotoAndStop() на этом элементе, чтобы определить, на каком кадре следует останавливаться на протяжении всей анимации. Формула, которую я здесь использую, обычно:

gotoAndStop( Math.round( currentHealth / maxHealth * x ) );

Где x - количество созданных вами кадров.

Надеюсь, это поможет.

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