Это делается очень просто. Сначала пишешь randomize(), чтобы у тебя каждый раз новый сид для случайного числа создавался (иначе функции для случайных чисел будут давать один и тот же результат). Потом, чтобы зарандомить число используешь random_range(от, до). Она даёт случайное число, включая дробные. Но думаю в твоём случае лучше irandom_range(от, до) P.S. Документация движка говорит, что достаточно один раз где-то вызвать randomize() в начале игры, постоянно вызывать не надо вроде как
Если пуля пролетает сквозь врагов и не попадает в них, даже, когда все коллизии правильно настроены, это значит, что скорость снаряда слишком высокая. Физика игры обрабатывается, как и сама игра с определённой частотой, поэтому в одном кадре снаряд перед врагом, в следующем он уже за ним, следовательно попадание не засчитывается. Чтобы такого не было нужно или уменьшить скорость пули, или сделать её хитбокс длинней в редакторе. Есть ещё всякие трюки, но они уже сложней
Из довольно распространённых приёмов в шутерах, можно к пуле привязать короткий луч сзади, который будет дополнительно проверять касание. В GameMaker это можно сделать с помощью collision_line(), которую можно направлять через lengthdir. В общем, думаю разберёшься, как это реализовать. Я, наверно, как-нибудь видео про эту проблему запишу.
Отличное и информативное видео! Благодарю!
Не понимаю почему у тебя так мало просмотров! Ты же хорошо объясняешь!
я вообще коекак этот канал случайно откопал спустя 5 месяцев, чтото ютуб не охотно к нему относится.
Спасибо за урок!
Если у вас не работает попадание и пуля летит мимо, то проверьте физику в комнате. Возможно она есть и по этому это не работает
А можно ли сделать урон в диапазоне от (условно) 3 до 7? Или это никак не реализовать в этой программе?
Это делается очень просто. Сначала пишешь randomize(), чтобы у тебя каждый раз новый сид для случайного числа создавался (иначе функции для случайных чисел будут давать один и тот же результат). Потом, чтобы зарандомить число используешь random_range(от, до). Она даёт случайное число, включая дробные. Но думаю в твоём случае лучше irandom_range(от, до)
P.S. Документация движка говорит, что достаточно один раз где-то вызвать randomize() в начале игры, постоянно вызывать не надо вроде как
@@gdjourney7355 Спасибо)
пожалуйста расскажите как сделать ресет очков после смерти персонажа?
Ставишь в месте, где у персонажа заканчиваются жизни score = 0 и всё
там, где у тебя collision противника с игроком описан, игра рестартится. добавь после game_restart(); событие HP = 0;
*Давно пишешь на gms2? Я тоже пишу игру, но у меня в плане графики сложная, весит уже 183мб,можешь на канале посмотреть видео*
Пишу не очень давно, но я с этим движком, судя по всему надолго
Что делать если пуля пролетает сквозь объект а
Если пуля пролетает сквозь врагов и не попадает в них, даже, когда все коллизии правильно настроены, это значит, что скорость снаряда слишком высокая. Физика игры обрабатывается, как и сама игра с определённой частотой, поэтому в одном кадре снаряд перед врагом, в следующем он уже за ним, следовательно попадание не засчитывается. Чтобы такого не было нужно или уменьшить скорость пули, или сделать её хитбокс длинней в редакторе. Есть ещё всякие трюки, но они уже сложней
Из довольно распространённых приёмов в шутерах, можно к пуле привязать короткий луч сзади, который будет дополнительно проверять касание. В GameMaker это можно сделать с помощью collision_line(), которую можно направлять через lengthdir. В общем, думаю разберёшься, как это реализовать. Я, наверно, как-нибудь видео про эту проблему запишу.
@@gdjourney7355 спс