Одной из интересных игровых идей является изменением величины не сразу такая как она есть, а постепенно. Ну например, допустим у вас 75 жизней из 100. Вам наносит урон враг в 25 единиц. И мы не сразу отображаем 50 жизней, а постепенно убавляем 75 до 50. Это может быть как обычная цифра, так и какая-то полоска, где полоска от 50 до 75 жизней отображается красным, т.о. показываем что жизни отбавляются. Пьём лечащую бутылку, показываем зелёный отрезок от 50 до 100.
При этом игрок знает в какую стороны изменилось значение. Если это деньги, то он видит как изменилось значение, а вот если отобразить значение сразу, то сложно понять отбавилось или прибавилось. Либо игроку надо будет вычесть предыдущее значение от текущего чтобы узнать разницу, а ведь вы не хотите загружать не интересной и не нужной работой?
Сама идея проста. Выбираем то значение, которое должно быть "мягким".
1) Создаем под нее 2 переменные: реальное, текущее значение (real_value) и отображаемое (draw_value). Вместо var поставьте своё название.
2) Теперь необходимо придумать функцию "перемещения". Сначала, по русски: Если разница между отображаемой величиной и реальной больше, то отображаемая величина стремится к реальной, а иначе делаем их одинаковыми, если они ещё не таковые. Как стремится? Вы можете выбрать по своему разумению. Я вам предложу 1 вариант сейчас и несколько позже. А сейчас код:
if(abs(real_value - draw_value) > 0.009)Всё. Теперь осталось рисовать переменную draw_value вместо real_value. Или можете попробовать их вместе, чтобы узнать разницу.draw_value += (real_value - draw_value) / 8;elseif(value != draw_value)draw_value = value;
Функция "перемещения" - (real_value - draw_value) / 8; Перемещается гладко.
Можно линейную функцию для небольших величин - sign(real_value - draw_value);
Также вы можете применять разные спец. эффекты. Допустим как вращающийся счётчик, для денег или ещё чего-нибудь. Цветные полоски, как я описал выше. Придумайте своё.
Сам пример (в формате GM8, 10кб). Отображает координату мышки по Y.
Судя по количеству скачавших исходник, посещаемость блога... низкая :)
ОтветитьУдалитьПривет Ангел, рад что ты вернулся к написанию статей :).
Weslom Po, эт да... Пишу в архив, в там посмотрим! ;) Ang3L
ОтветитьУдалить