Суббота, 25 ноября 2017, 14:29

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

Меню сайта
Категории каталога
Создание игр [306]
Статьи об общих понятиях связанных с созданием игр.
Программирование [69]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [123]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [70]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [56]
Статьи, которые не вошли в определённые разделы.
Наш опрос
На какую платформу/систему создаёте игры?
Всего ответов: 10193
Главная » Статьи » Движки и Гейммейкеры

Создание системы частиц в Game Maker
Приветствую всех пользователей портала! В ходе разработки моего проекта, я остановился на реализации эффектов. Знаю, что существует весьма хорошая система частиц, в которой можно создавать практически любые эффекты. Но создание этой системы занимает немалое время в плане написания кода, поэтому я решил, так сказать, заменить/упростить эту систему на более удобную. Ну чтож, давайте начнём разработку нашей с Вами системы! Оперировать мы будем всего-лишь с одним объектом и скриптом, создающий партиклы. Создаём объект o_eff, добавляем ему 2 события - Step и Draw. В Step пишем такой код:

Code
image_alpha -= life; //уменьшаем прозрачность на значение из переменной life
if image_alpha <= 0 {instance_destroy();} //удаляем объект, когда он станет невидимым
if radius_min < radius_max {radius_min += radius_up;} //увеличиваем размер партикла до максимального заданного

значения на значение переменной radius_up
Как видите, код отвечает за жизнь партикла и его размеры. Теперь откройте событие Draw и отрисуйте партикл.

Code
draw_set_alpha(alpha); //устанавливаем прозрачность из переменной alpha
draw_set_color(make_color_rgb(red, green, blue)); //устанавливаем цвет партиклов из переменных
draw_circle(x, y, radius_min, 0); //и рисуем сам партикл с радиусом radius_min

Как вы уже поняли, код отвечает за отрисовку партиклов, прозрачность, цвет и радиус. Объект/генератор частиц создан, но в нём полно неизвестных нам переменных, задавать значения которых мы будем скриптом. Создайте скрипт с именем make_particle и впишите туда следующий код:

Code
repeat (argument14) //арг14 - кол-во частиц, создаваемых за раз
{
  with instance_create(argument0, argument1, o_eff) //применяет действия к созданому объекту
  {
  speed = argument2; //скорость полёта
  direction = argument3; //направление
  life = argument4; //жизни
  alpha = argument5; //прозрачность
  clr = argument6; //один цвет для всех. Например (134,134,134) или (150,150,150).
  if argument13 == true {red = clr; green = clr; blue = clr;} //если параметр общего цвета истинна
  else //то присваиваем всем партиклам один заданный цвет, иначе
  {red = argument7; green = argument8; blue = argument9;} //присваиваем произвольный
  radius_max = argument11; //максимальный размер  
  radius_min = argument10; //начальный размер
  radius_up = argument12; //скорость увеличения размера до максимального
  }
}

Вот мы и присвоили всем переменным объекта o_eff значения. Всё, система готова! Теперь чтобы создать партиклы, используйте функцию

make_particle(xcoord,ycoord,spd,dir,life,alpha,colorall,red,green,blue,radius_min,radius_max,radius_up,usecolorall,amount);

подставляя нужные параметры.

На этом урок окончен. Спасибо за внимание!

Категория: Движки и Гейммейкеры | Добавил: FadeBaker (26 июля 2011)
Просмотров: 8127 | Комментарии: 2 | Рейтинг: 4.5/11 |
Теги: урок, кодинг, частицы, туториал, Статьи по Game Maker, Система частиц, уроки, Game Maker, GM, GML
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Создание системы частиц в Game Maker», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 2
+0-
2 GFRONT   (09 января 2015 07:57)
GFRONTЧастицы из объектов... Один я мучаюсь с массивами.

+2-
1 beril   (05 февраля 2013 18:23)
berilСпасибо, до воли занимательно

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Xaya Adventure Game Editor
  • WADE
  • Impact
  • Raycasting Game Maker
  • Atomic
  • Sauerbraten
  • Playir
  • Tombstone Engine
  • Brutus2D
  • BlitzMax
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    GameDev, Уроки OpenGL, Программирование, Создать Minecraft
    Все права сохранены. GcUp.ru © 2008-2017 Рейтинг