Воскресенье, 24 Ноября 2024, 17:47

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
ХП-бар секторами
NotinДата: Четверг, 29 Января 2015, 14:15 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Собственно сабж. Интересует создание ХП-бара секторами.


Twitter
ВКонтакте
Raven84Дата: Четверг, 29 Января 2015, 14:27 | Сообщение # 2
старожил
Сейчас нет на сайте
Notin, А что собственно сложного? Тут смотря как вы хотите сделать: чтобы один прямоугольник был равен одной единице здоровья или чтобы каждый прямоугольник еще и плавно уменьшался как простой хелсбар.
Думаю скорее первый вариант. Тогда тупо в событии Draw рисуем столько прямоугольников, сколько у нас единиц здоровья.Все делаем в цикле (кол-во циклов равно кол-ву здоровья) и каждый раз X-координату прямоугольника увеличиваем на оперделенное кол-во пикселей (равное ширине палочки и пробела).


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
FadeBakerДата: Четверг, 29 Января 2015, 15:01 | Сообщение # 3
JavaSE Game Developer
Сейчас нет на сайте
Это в Draw:
Код
sectorsCount = health / maxHealth * 20; //20 — кол-во секторов
for (i = 0; i < sectorsCount; i += 1) {
     draw_sprite(-1, спрайтСектора, x + i * sprite_get_width(спрайтСектора), y);
}

sectorsCount, возможно, придется округлить для более правильного отображения.

Можно сделать последний отображающийся сектор с плавной прозрачностью, которая будет зависеть от количества здоровья. Например, если health == 91, то он будет едва виден, а если 98, то практически полностью виден. Для этого надо округлять кол-во секторов в меньшую сторону и использовать остаток от деления — health mod 10 — в качестве прозрачности, затем дорисовывать последний сектор с прозрачностью равной (health mod 10) * 0.1.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.


Сообщение отредактировал FadeBaker - Четверг, 29 Января 2015, 15:04
Raven84Дата: Четверг, 29 Января 2015, 15:06 | Сообщение # 4
старожил
Сейчас нет на сайте
FadeBaker,
Код
x + i * sprite_get_width(спрайтСектора)

В этом случае же все сектора будут стоять вплотную один к другому и будут казаться одной сплошной полосой. Разве нет? Ну если конечно только в спрайте не предусмотреть этот самый пробел.


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
FadeBakerДата: Четверг, 29 Января 2015, 16:41 | Сообщение # 5
JavaSE Game Developer
Сейчас нет на сайте
Raven84, тогда можно так:
Код
x + i * (sprite_get_width(спрайтСектора) + 2);

Теперь отступ между секторами будет два пикселя.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг