| С чего стоит начать создание нового образца оружия?  Сперва наперво нам понадобится спрайт оружия - именно из его дула будет валить огонь. Внешний вид огнемета зависит исключительно от фантазии автора.   Теперь нужно изобразить само пламя: Мы в праве выбрать способ распространения огня:
  1) Огонь вырывается из дула "фонтаном" - сжигает обьекты поблизости. В этом случае анимацией огня будет хаотическое движение язычков пламени.
  2) Огонь, в форме облак - покидает ствол и пролетая определенную дистанцию исчезает. Для анимации достаточно использовать вращение(по часовой стрелке, против). Когда графические подготовки окончены переходим к самому коду.   Код огнемета:   CREATE    Code Mouse = 0 // Если мы хотим, чтоб стрельба велась в сторону мыши создаем данную переменную. Face=1 // Куда направлен огнемет
 STEP    Code Mouse=point_direction(x,y,mouse_x,mouse_y) // Указываем, что Mouse это местонахождение курсора мыши.  GLOBAL LEFT BUTTON (Огонь, в форме облак )    Code instance_create(x+lengthdir_x(50,Mouse),y+lengthdir_y(50,Mouse),flame) // создаем огонь - flame - обьект  DRAW   Завершальный штрих - прописываем, чтоб огнемет нормально отображался и проворачивался.    Code draw_sprite_ext(flamethrower,Face+1,x,y+8,1,1,Mouse,c_white,1); // flamethrower - спрайт огнемета  Код огня:   Поэкспериментировав с "глубиной" мы можем решить - будет ли огонь перемещаться впереди обьектов, за ними,или же на одном уровне.   CREATE    Code direction=Flamer.Mouse+random(14)-random(14) // Flamer - обьект огнемет. Указываем в каком направление будет двигаться огонь * 
 speed=15+random(15) // Скорость перемещения огня
 STEP   Для создания простенького огня данных строк вполне хватит:    Code image_angle=direction // Пламя будет поворачиваться в определенную сторону 
 image_alpha-=0.10 // Изображение пламени постепенно становится прозрачным
 
 if image_alpha<0{instance_destroy()}
 DRAW   Чтобы пламя отображалось прописываем:    Code draw_set_blend_mode(bm_add) draw_sprite_ext(sprite_index,image_single,x,y,1,1,image_angle,c_white,image_alpha)
 draw_set_blend_mode(bm_normal)
 Результат будет таковым:   Примечания:   Random - Команда, для случайного генерирования числа. Можно использовать как в скорости огня так и в выборе угла рассеивания оного. Для чего нужно - чтобы разнообразить игровой процесс.   Данный код отлично работает как в играх с видом сбоку так и с видом сверху. |