С чего стоит начать создание нового образца оружия? Сперва наперво нам понадобится спрайт оружия - именно из его дула будет валить огонь. Внешний вид огнемета зависит исключительно от фантазии автора. Теперь нужно изобразить само пламя: Мы в праве выбрать способ распространения огня: 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 - Команда, для случайного генерирования числа. Можно использовать как в скорости огня так и в выборе угла рассеивания оного. Для чего нужно - чтобы разнообразить игровой процесс. Данный код отлично работает как в играх с видом сбоку так и с видом сверху. |