Пятница, 26.04.2024, 20:18
Главная Регистрация RSS
Приветствую Вас, Гость
Поиск по сайту
Авторизация

Меню сайта
Game Maker
Если вы только-только начали изучать игрострой и еще даже не успели скачать сам Game Maker, предлагаем вам на выбор следующие версии программы:

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Топ 5 игр
Агент Green 4.2 / 5.0
FeDo 4.2 / 5.0
To Mars: Sec... 4.2 / 5.0
To Mars+MapE... 3.9 / 5.0
Paintball 3.8 / 5.0

Топ игр составлен путем пользовательского голосования.

Если вы не согласны с какой-либо оценкой, примите участие и поставьте свой балл игре. Ваша оценка очень важна для нас ;)
Статистика



На сайте: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Гейм-дизайн и графика

Создание хелзбара из спрайта

Итак, приступим.
Для начала создадим два спрайта - spr_healthbar - он то и будет нашей шкалой...логично, не правда ли?
Ну и спрайт spr_outside - граница хеалзбара. Можно обойтись без неё, но тогда красоты в нашем творении будет поменьше. А если красота вам не важна, берите команду draw_healthbar. Кому нужна - читаем дальше.

Нарисовали? Для хеалзбара больше ничего не нужно.

Создаем обьект obj_healthbar - зачем он нужен, я думаю, всем понятно.

Теперь о переменной. Если переменная не будет изменяться, то мы получим статичную картинку. А зачем нам она? Поэтому для начала найдем переменную, за что - то реально отвечающую. У нас её нет, поэтому создадим (те, у кого в игре уже есть переменная, которую вы хотите выразить в виде хеалзбара, пропускают этот шаг).

Заходим в Create и пишем всего одну строку:
global.heal=100

Теперь приступим к рисованию хеалзбара - заходим в Draw и пишем всего 2 строки:
draw_sprite_part(sprite_index,image_index,0,0,(sprite_width/100)*global.heal,sprite_height,x,y)//Рисование хеалзбара. Если у вас уже есть переменная, которую вы хотите выразить в хеалзбаре, то замените global.heal на вашу переменную и замените 100 на максимальное значение вашей переменной
(draw_sprite(spr_outside,0,x,y)//Рисуем границу.

Все. Тестируйте. (Если у вас ничего, кроме хеалзбара нет, то сделайте в событиях клавиатуры Left и Right изменения переменной global.heal. Ну и наблюдайте.)

Что ж, всего две строки кода, а так "многа букаф". А теперь - зачем это нужно?

Стандартный хеалзбар:

Плюсы:
Почти не занимает памяти.
Всего одна строка.

Минусы:
Уродство.
Нельзя сделать анимацию.


Спрайтовый хеалзбар

Плюсы:
Красивый (если вы его нарисуете красиво)
Можно сделать анимацию


Минусы:
В два раза больше строк (мдаа, минус серьезный)
Весит больше, чем одна команда (вообще то спрайты не так уж и много весят, если вы не сделаете 100500 кадров анимации для хеалзбара размером 2560х1800)

Итак, теперь вы поняли, зачем я из 2-ух строчек текста сделал кучу обьяснений, иногда не нужных. Но все же это кому - нибудь пригодится. Наверное.
Категория: Гейм-дизайн и графика | Добавил: Xomafok (25.06.2014)
Просмотров: 2016 | Комментарии: 2 | Теги: интерфейс, бар, Шкала, healthbar, хеалзбар, здоровье | Рейтинг: 4.0/1
Всего комментариев: 2
0
1 BRESS   (25.06.2014 21:39) [Материал]
BRESS В плане оптимизации лучше по возможности вместо sprite_width/100 использовать заранее заготовленную переменную/число, а глобальную переменную создавать как-то так: globalvar heal; heal=100;

Ну это для того, чтобы прям тру-код замутить.

2 Xomafok   (27.06.2014 09:56) [Материал]
Xomafok Это сделано для того, чтобы новички не заморачивались с "кучий цыфар".

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]