Четверг, 28 Марта 2024, 22:51

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » GMS: плавное изменение image_blend
GMS: плавное изменение image_blend
MrVasLukДата: Пятница, 23 Января 2015, 22:13 | Сообщение # 1
участник
Сейчас нет на сайте
Здравствуйте, создал белый полупрозрачный объект, заиклил в нем будильник и вписал это:
image_blend = make_colour_rgb( random_range(0,255), random_range(0,255), random_range(0,100));

Конечно, результат меня не устроил. Как можно сделать так, чтобы объект в начале игры присваивал себе рандомный, но обязательно яркий цвет.
А потом его плавно менял на другой- тоже яркий. Выручайте, товарищи biggrin


увеличь популярность своего проекта/канала YouTube/странички вк:
FREE Social Promotion
OpenGOOДата: Суббота, 24 Января 2015, 00:29 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
эту используй make_colour_hsv

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
MrVasLukДата: Суббота, 24 Января 2015, 09:49 | Сообщение # 3
участник
Сейчас нет на сайте
А как плавный переход-то сделать? Вот допустим, определил он цвет. Нужно, чтобы он плавно его менял от начального до выбранного...

увеличь популярность своего проекта/канала YouTube/странички вк:
FREE Social Promotion
OpenGOOДата: Суббота, 24 Января 2015, 14:18 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Нужно получить градиентную заливку и использовать цвета её пикселей.

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
MrVasLukДата: Суббота, 24 Января 2015, 15:51 | Сообщение # 5
участник
Сейчас нет на сайте
Помогите, плиз... Я плохо разбираюсь в смешивании цветов на гмс...
Вы не могли-бы сделать код?


увеличь популярность своего проекта/канала YouTube/странички вк:
FREE Social Promotion
OpenGOOДата: Суббота, 24 Января 2015, 16:05 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Никогда этого не делал, но сделал -)

Код
/// Create_Gradient(col1, col2, array, size)

var col1 = argument0;
var col2 = argument1;
var array = argument2;
var size = argument3;
var amount = 1 / (size - 1);
for (var i = 0; i < size; ++i)
{
      array[@ i] = merge_colour(col1, col2, amount * i);
}


Код
var col1 = c_red;
var col2 = c_yellow;
var duration = 5;
var sz = room_speed * duration;
col[sz-1] = 0;
Create_Gradient(col1, col2, col, sz);


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Суббота, 24 Января 2015, 18:19
MrVasLukДата: Суббота, 24 Января 2015, 16:56 | Сообщение # 7
участник
Сейчас нет на сайте
а что в image_blend ставить?

увеличь популярность своего проекта/канала YouTube/странички вк:
FREE Social Promotion
OpenGOOДата: Суббота, 24 Января 2015, 18:16 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Текущий цвет из массива.

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
MrVasLukДата: Суббота, 24 Января 2015, 18:18 | Сообщение # 9
участник
Сейчас нет на сайте
т.е?
А как? какой вэрибл?


увеличь популярность своего проекта/канала YouTube/странички вк:
FREE Social Promotion
OpenGOOДата: Суббота, 24 Января 2015, 18:59 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
После вызова Create_Gradient добавляем переменную например с именем col_index и присваиваем ей ноль
Код
col_index = 0;


В Step Event
Код
if col_index < array_length_1d(col)
     {
     image_blend = col[col_index];
     ++col_index;
     }


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
MrVasLukДата: Суббота, 24 Января 2015, 21:54 | Сообщение # 11
участник
Сейчас нет на сайте

Ураа,заработало biggrin


увеличь популярность своего проекта/канала YouTube/странички вк:
FREE Social Promotion
Raven84Дата: Суббота, 24 Января 2015, 22:03 | Сообщение # 12
старожил
Сейчас нет на сайте
OpenGOO, А что делает строчка
Код
++col_index
?


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
OpenGOOДата: Воскресенье, 25 Января 2015, 14:00 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
Цитата Raven84 ()
OpenGOO, А что делает строчка
Код
++col_index
?

увеличивает значение col_index на единицу


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
Raven84Дата: Воскресенье, 25 Января 2015, 14:23 | Сообщение # 14
старожил
Сейчас нет на сайте
OpenGOO,
Цитата
увеличивает значение col_index на единицу

Т.е. это тоже самое, что и col_index+=1 ?
Хм. Странное написание. Первый раз с таким сталкиваюсь. Век живи-век учись! smile


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
OpenGOOДата: Воскресенье, 25 Января 2015, 15:11 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
Цитата Raven84 ()
Т.е. это тоже самое, что и col_index+=1 ?

Да, оно самое. Читай документацию по GML раздел GML Overview и еще что нибудь новое узнаешь -)


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
Raven84Дата: Воскресенье, 25 Января 2015, 15:20 | Сообщение # 16
старожил
Сейчас нет на сайте
OpenGOO, Ок. Спасибо. Нужно будет еще раз в справку заглянуть.

Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
Akula225Дата: Среда, 03 Мая 2023, 01:19 | Сообщение # 17
уже был
Сейчас нет на сайте
OpenGOO, Наверное поздновато, но я вот думаю, как будет лучше, создавать список и перебирать его, или постоянно вызывать функцию. по типу этого
if(alarm[4] > 0) // Таймер на 40 кадров
{
image_blend = merge_colour(c_red, c_white, amount)
if(amount < 1)
amount += 1 / 40;
}
AlexanderBekkerДата: Четверг, 04 Мая 2023, 01:10 | Сообщение # 18
BekkerDev Studio
Сейчас нет на сайте
Я в последний раз работал с Game Maker в 2012-ом году, но с тех пор разработчики наверняка добавили множество удобных функций, упрощающих жизнь. Не знаю, есть ли в GML перегрузка операторов. В таком случае можно было бы обойтись всего одной строкой.
Код
image_blend += (c_red - image_blend) * 0.1; // цвет, хранящийся в image_blend, плавно будет меняться на красный
// 0.1 — коэффициент, чем он ближе к 1.0, тем быстрее переход, а при 1.0 он будет моментальный

Или можно попробовать так, если код выше не сработает. Эффект будет тот же. По сути это функция линейной интерполяции (lerp) для работы со цветом.
Код
image_blend = merge_colour(image_blend, c_red, 0.1);


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio


Сообщение отредактировал AlexanderBekker - Четверг, 04 Мая 2023, 01:11
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » GMS: плавное изменение image_blend
  • Страница 1 из 1
  • 1
Поиск:

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