Некоторое время назад я разработал игру с изогнутой шкалой здоровья, вот как я ее достиг:
Шаг 1:
Создайте свой изогнутый стержень. Я предлагаю Oval Primitive
инструмент:
![enter image description here](https://i.stack.imgur.com/KjfVI.png)
Нарисуй свой бар. Я предлагаю создать направляющий слой, чтобы продемонстрировать визуальный образ вашего изогнутого сегмента. Скопируйте панель на другой слой и сделайте ее маской, это будет то, что показывает вашу панель здоровья. Маска и сегмент должны быть MovieClips
:
![enter image description here](https://i.stack.imgur.com/ArOvl.png)
Шаг 2:
Установите точку регистрации вашей маски в центр вашего круга. Ваша маска будет вращаться вокруг этой точки, чтобы показать ваш фактический бар. Поверните маску так, чтобы она находилась слева от фактической гистограммы:
![enter image description here](https://i.stack.imgur.com/uJIRz.png)
Шаг 3:
Создайте анимацию вашей маски, вращающейся по часовой стрелке на 100 кадров (добавьте больше кадров для более точной прогрессии). Вы даже можете применить анимацию движения к графике, где цвет меняется с красного на зеленый по мере заполнения и т. Д.
![enter image description here](https://i.stack.imgur.com/tsLjS.png)
Шаг 4:
Используйте gotoAndStop()
на этом элементе, чтобы определить, на каком кадре следует останавливаться на протяжении всей анимации. Формула, которую я здесь использую, обычно:
gotoAndStop( Math.round( currentHealth / maxHealth * x ) );
Где x
- количество созданных вами кадров.
Надеюсь, это поможет.