Game Maker - создание игр | HellRoom Games
Ноябрь 16, 2025, 02:55:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как повернуть систему частиц? И зафиксировать дальность?TDS. GMS2(2.3.7.606)  (Прочитано 3766 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SG23NK23
Новичок
*

Репутация: 0
Offline Offline

API: GameMaker Studio 2
Сообщений: 14


« : Декабрь 19, 2021, 16:42:08 »

Здравствуйте, если будут не понимания то прошу написать что ещё предоставить.
У меня есть система частиц. И получается следующее если её просто приклеить к повороту мышки то она разлетается по диагонали. А нужно чтобы струя частиц была струёй всегда.
Т.е. если взять и смотреть строго в право или вверх (по оси х или y) то она струя, а если по диагонали то струя превращается в некий овал.
Так же хотелось чтобы дальше чем некий радиус она (струя) не вылазила. Не могу этот момент сделать.
Прошу помочь мне.
Записан
SilentPhil
Norland
GM Pro user
*

Репутация: 479
Offline Offline

Пол: Мужской
Награды:
Первое место на HellRoom Jam #7 [Hell in Your Fridge]500 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]Настоящий игродел!Второе место на HellRoom Jam #6 [По следам Артакса]...
API: GameMaker Studio 2
Деятельность: GML, Pixel Art
Сообщений: 1363



WWW
« Ответ #1 : Декабрь 19, 2021, 17:35:37 »

Прикладывайте код.

Цитировать
Так же хотелось чтобы дальше чем некий радиус она (струя) не вылазила. Не могу этот момент сделать.

При уменьшении времени жизни частиц - струя будет меньше.
Записан

         
Да, на них можно кликать.
SG23NK23
Новичок
*

Репутация: 0
Offline Offline

API: GameMaker Studio 2
Сообщений: 14


« Ответ #2 : Декабрь 19, 2021, 19:19:53 »

xx = x + lengthdir_x(20, image_angle);
yy = y + lengthdir_y(-30, image_angle-90)

if(mouse_check_button(mb_left))
{
   flame = part_system_create()
   flameset = part_type_create()
   part_type_shape(flameset,pt_shape_square)
   part_type_size(flameset,0.01,0.04,0.01,0.02)
   part_type_life(flameset,20,25)
   part_type_direction(flameset,1,5,2,1)
   part_type_color_rgb(flameset,200,256,40,70,0,30)
   fle = part_emitter_create(flame)
   part_emitter_region(flame,fle,xx, mouse_x
                         ,yy, mouse_y
   ,ps_shape_ellipse,ps_distr_linear)
   part_emitter_burst(flame,fle,flameset,100)
}

всё это в степе. А и я тут уже менял некоторые моменты такие как линию на эллипс. Что бы выглядело как разброс огня. Как в огнемёте.
« Последнее редактирование: Декабрь 19, 2021, 19:28:28 от SG23NK23 » Записан
SilentPhil
Norland
GM Pro user
*

Репутация: 479
Offline Offline

Пол: Мужской
Награды:
Первое место на HellRoom Jam #7 [Hell in Your Fridge]500 сообщений!За постоянность! [50 дней на форуме]За лояльность! [+150 репутации]Настоящий игродел!Второе место на HellRoom Jam #6 [По следам Артакса]...
API: GameMaker Studio 2
Деятельность: GML, Pixel Art
Сообщений: 1363



WWW
« Ответ #3 : Декабрь 20, 2021, 14:05:25 »

1) Если в lengthdir указать разный угол для каждого компонента вектор (x и y), то на выходе скорее всего получится не то, что вы хотите. Вот пример.
2) part_emitter_region - задается прямоугольником. Поэтому, за исключением формы линии (ps_shape_line), его не получится вращать.

Тут либо с помощью part_type_direction нужно указывать нужное направление (сейчас оно у вас там фиксировано), либо вращать всю партикль систему при отрисовке с помощью матрицы трансформации (по ссылке это синяя стрелка).
 
Записан

         
Да, на них можно кликать.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.189 секунд. Запросов: 28.