Форум » Вопрос-Ответ » [Game Maker] Как создать жизни для монстров? » Ответить

[Game Maker] Как создать жизни для монстров?

PERLOVKA: Как создать жизни для монстров? Например попал в монстра 5 раз и он здох. А ешё как создать промежуток стрельбы например 1 выстрел в секунду?

Ответов - 6

Volotar: 1) Монстр = event, action пишеш код: Level_monstr=5 (нужное количество жизней) Создаеш событие для пули, при столкновении с монстром Level_monstr-=1; Если = 0 можеш еще заменить на другой спрайт = умирающего монстра или оставь как есть. 2) Промежуток выстрелов можно реализовать следующим образом, проверять расстояние до пули, если больше 150, тогда есть выстрел, иначе - нет. P.S. Если недостаточно алгоритма, жди до Пн скину код

D(e)N: Volotar пишет: 2) Промежуток выстрелов можно реализовать следующим образом, проверять расстояние до пули, если больше 150, тогда есть выстрел, иначе - нет. Весьма оригинально =) Но если игрок будет двигаться в сторону стрельбы (бежать за пулями), то промежуток между выстрелами будет больше, и наоборот.

Volotar: D(e)N пишет: Но если игрок будет двигаться в сторону стрельбы (бежать за пулями), то промежуток между выстрелами будет больше, и наоборот. Согласен! Но я привел пример для стоящего игрока, который может либо идти либо стрелять, но никак все сразу. :)


PERLOVKA: Volotar пишет: P.S. Если недостаточно алгоритма, жди до Пн скину код Буду ждать до понедельника, хотя про монстра всё понятно.

Volotar: Игрок - event -step, пиши: // Вверх if keyboard_check(vk_space) and sprite_index=s_pl_ent_up { if distance_to_object (o_pulla_up)>130 { instance_create (x+5,y-44,o_pulla_up); image_speed=1.5; sprite_index=s_pl_ent_up; sound_play (s_sound_vistrel); } } // Вниз if keyboard_check(vk_space) and sprite_index=s_pl_ent_down { if distance_to_object (o_pulla_down)>130 { instance_create (x-8,y+28,o_pulla_down); image_speed=1.5; sprite_index=s_pl_ent_down; sound_play (s_sound_vistrel); } } // Влево if keyboard_check(vk_space) and sprite_index=s_pl_ent_left { if distance_to_object (o_pulla_left)>130 { instance_create (x-39,y-6,o_pulla_left); image_speed=1.5; sprite_index=s_pl_ent_left; sound_play (s_sound_vistrel); } } // Вправо if keyboard_check(vk_space) and sprite_index=s_pl_ent_right { if distance_to_object (o_pulla_right)>130 { instance_create (x+24,y+4,o_pulla_right); image_speed=1.5; sprite_index=s_pl_ent_right; sound_play (s_sound_vistrel); } } где: 1) s_pl_ent_up - спрайт игрока стреляющего вверх 2) s_pl_ent_down - спрайт игрока стреляющего вниз и т.д. (влево - left, вправо-right) 3) o_pulla_up - объект пули летящей ввверх (и т.д. вниз-down, вправо-right, влево-left) 4) if distance_to_object (o_pulla_up)>130 - проверяю дистанцию к выпущенной пули, если больше 130 тогда выстрел иначе - нет. 5) instance_create (x+24,y+4,o_pulla_right) - это смещение объекта пули по отношению оружия игрока, чтобы пуля вылетала не из ноги или головы. 6) sound_play (s_sound_vistrel); - звук выстрела 7) image_speed=1.5; - скорость пули Р.S. необходимо создать объект пули, спрайты для игрока (ну это понятно из описания). Удачи!

PERLOVKA: Спасибо



полная версия страницы