Понедельник, 25 Ноября 2024, 09:48

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Хелсбар с помощью спрайта. Как реализовать?
CoreДата: Среда, 29 Мая 2019, 07:54 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Искал ответ на многих сайтах, он ничего не нашел. Нужно сделать хороший хелсбар с фоном и пикселями :) Надеюсь на вашу помощь заранее спасибо.

martukДата: Среда, 29 Мая 2019, 09:38 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Core, Какой именно интересует?
Можешь показать примеры того, что ты примерно хочешь?

Добавлено (29 Мая 2019, 09:52)
---------------------------------------------
Вот на видео автор сделал из спрайта, ты это хотел?

CoreДата: Среда, 29 Мая 2019, 20:59 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Примерно как на этом рисунке:

(рисунок мой :) )


martukДата: Среда, 29 Мая 2019, 21:32 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Core, Лично я вижу так:
Данный бар действительно можно разделить (условно) на два спрайта. Первая часть - верхний слой, это черная сетка и знак плюса. Второй слой (нижний) это уже само здоровье под сеткой.
Само здоровье (нижний слой) рисуй функцией draw_sprite_part.
Затем поверх сетку обычной draw_sprite.

Функция draw_sprite_part как бы рисует часть от спрайта, а там уже можно легко подобрать нужную математику.


Сообщение отредактировал martuk - Среда, 29 Мая 2019, 21:34
CoreДата: Среда, 29 Мая 2019, 23:59 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Ок, тут все получилось, но как мне сделать чтоб хелсбар был прикреплен к виду?
Код

draw_healthbar(x-25,y-27,x+25,y-31,(global.lp/global.lpmax)*100,c_black,c_blue,c_blue,0,1,1)


martukДата: Четверг, 30 Мая 2019, 09:21 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Цитата Core ()
draw_healthbar(x-25,y-27,x+25,y-31,(global.lp/global.lpmax)*100,c_black,c_blue,c_blue,0,1,1)

Но это же не совсем то, что ты хотел)
А чтобы прикрепить к виду, нужно рисовать в событии Draw GUI
CoreДата: Пятница, 31 Мая 2019, 02:40 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Цитата martuk ()
Но это же не совсем то, что ты хотел)

Да) решил сильно не усложнять.

Цитата martuk ()
А чтобы прикрепить к виду, нужно рисовать в событии Draw GUI

Этот Draw можно увидеть в GM 8.0?


martukДата: Пятница, 31 Мая 2019, 09:24 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Цитата Core ()
Этот Draw можно увидеть в GM 8.0?

Начиная с первой студии.

В game maker 8 прикрепить к виду можно так:
Код
x = view_xview[0]+30;
y = view_yview[0]+30;

30 - это отступ от верхнего левого угла экрана.
Как ты понял, тут мы просто получаем координаты вида и применяем его для отрисовки. Хелсбар будет просто "следить" за видом (камерой).
Но это не самый оптимальный вариант, но рабочий.


Сообщение отредактировал martuk - Пятница, 31 Мая 2019, 09:50
CoreДата: Пятница, 31 Мая 2019, 14:56 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
Цитата martuk ()
В game maker 8 прикрепить к виду можно так

А так нельзя?
Код

x = view_xview+30
y = view_yview+30

Добавлено (31 Мая 2019, 16:05)
---------------------------------------------
Что делать если хелсбар трясется?


UNIT02_GAMESДата: Пятница, 31 Мая 2019, 16:42 | Сообщение # 10
частый гость
Сейчас нет на сайте
Цитата Core ()
Что делать если хелсбар трясется?

Попробуй переместить код например в End Step или Draw


///
CoreДата: Суббота, 01 Июня 2019, 09:30 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
Цитата UNIT02_GAMES ()
Попробуй переместить код например в End Step или Draw

НЕ РАБОТАЕТ.


martukДата: Суббота, 01 Июня 2019, 10:01 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Core, в End Step пиши:
Код
x=view_xview[0];
y=view_yview[0];

А в draw:
Код
draw_sprite(sprite, 0, x, y);


А еще лучше перейди на gms1 или gms2.


Сообщение отредактировал martuk - Суббота, 01 Июня 2019, 10:02
CoreДата: Понедельник, 03 Июня 2019, 13:37 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
Цитата martuk ()
в End Step пиши
i
Не получается, дергается
Цитата

А в draw:
Код
draw_sprite(sprite, 0, x, y);

У меня сам хелсбар дергается, спрайт крепко стоит.


martukДата: Понедельник, 03 Июня 2019, 15:23 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Не просто же так разработчики ввели новое событие DRAW GUI. Вот как раз во избежание таких вот проблем.
А вдруг тебе захочется сделать зум в твоей игре? Как дальше поступишь? Будешь еще пол года изучать как работают виды? И Зачем вообще использовать морально (да и вообще) устаревшую сборку GM по всем параметрам, где для реализации простецких вещей придется велосипедить только в путь?
CoreДата: Понедельник, 03 Июня 2019, 15:40 | Сообщение # 15
заслуженный участник
Сейчас нет на сайте
martuk, Существует версия gms1 32 bit? если есть, то дай ссылку.

martukДата: Понедельник, 03 Июня 2019, 16:02 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Core, у тебя ограничение по железу поставить 64? Иначе это не тот компьютер, который нужно использовать для разработки.
К слову, gms1 и gms2 пока по прежнему экспортируют 32 битные исполнители.

Добавлено (03 Июня 2019, 16:04)
---------------------------------------------
Почти все компьютеры, выпущенные за последние 10-15 лет поддерживают 64-бит инструкции

  • Страница 1 из 1
  • 1
Поиск:

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