Мои вопросы по платформеру
|
|
lenalenika | Дата: Суббота, 09.05.2015, 18:28 | Сообщение # 1 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Мне нужно чтобы определённое количество врагов наспавнилось в нужных но (разных) координатах комнаты, а как только их становится меньше через некоторое время появляются ещё. Ну ещё обясню для каждого экземпляра врага 3-4 разных координаты
Сообщение отредактировал Volk - Понедельник, 01.02.2016, 14:56 |
|
| |
BRESS | Дата: Суббота, 09.05.2015, 19:00 | Сообщение # 2 |
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
| Код if !instance_exists(o_враг) { repeat 5 { instance_create(irandom(room_width),irandom(room_height),o_враг) } }
Будет спавнить врагов, как только в комнате все умрут. По хорошему бы, подсчитать надо количество оставшихся экземпляров объекта врага и исходя из него уже спавнить новых мобов... Но я поленился. Если нужно будет, дополню код.
Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
|
|
| |
lenalenika | Дата: Суббота, 09.05.2015, 19:49 | Сообщение # 3 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| я ещё вот так дополнил вроде всё норм работает if place_free(x+35,y+35){ if place_free(x-35,y-35){ if !instance_exists(object4) { repeat 20{ instance_create(irandom(room_width),irandom(room_height),object4) } } }}Добавлено (09.05.2015, 19:49) --------------------------------------------- и ещё вопрос как задать произвольное движение объектам без путей я пробовал через place_free(x,y) чтобы проверялись столкновения но это мало работает ( игра вид сверху)
Сообщение отредактировал lenalenika - Суббота, 09.05.2015, 19:08 |
|
| |
Gracio001 | Дата: Суббота, 09.05.2015, 20:21 | Сообщение # 4 |
*классный титул*
Группа: Администраторы
Сообщений: 1335
Награды: 2
Репутация: 187
Статус: Offline
| lenalenika, поподробнее можно?
Фактически, можно создать несколько "целевых точек" (это могут быть указанные координаты/объекты) и передвигать объект к ним посредством move_towards_point; mp_potential_step. Но ничего точнее без объяснения или исходника сказать не могу.
ты никогда не станешь просто девочкой из песни.
|
|
| |
lenalenika | Дата: Суббота, 09.05.2015, 21:31 | Сообщение # 5 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Цитата Gracio001 ( ) Фактически, можно создать несколько "целевых точек" (это могут быть указанные координаты/объекты) и передвигать объект к ним посредством move_towards_point; mp_potential_step. Но ничего точнее без объяснения или исходника сказать не могу. Ну да как раз это надо только нужно привязать к экземпляру объекта так так у меня много врагов в разных местах комнаты и они должны двигаться по разному ( дай хоть кусочек кода) И ещё если игрок близко то враг гонится за ним, а если теряет то возвращается на путь. Ну или проще сделать рандомное движение ( тоже хотелось бы узнать как) например ищется определённое направление из нескольких (360) если впереди стена то ищется другое, через некоторое время (чтоб ни ехал бесконечно) направление обнуляется и ищется новое. Лучше так мне сделать ( но я не очень понимаю как сделать)
Сообщение отредактировал lenalenika - Суббота, 09.05.2015, 21:39 |
|
| |
Gracio001 | Дата: Суббота, 09.05.2015, 21:39 | Сообщение # 6 |
*классный титул*
Группа: Администраторы
Сообщений: 1335
Награды: 2
Репутация: 187
Статус: Offline
| Цитата lenalenika ( ) Ну или проще сделать рандомное движение ( тоже хотелось бы узнать как) Сделай таймер сначала, по его истечении пиши: Код direction=irandom(270)//Направление движения - случайное, в диапазоне от 0 до 270.
ты никогда не станешь просто девочкой из песни.
|
|
| |
lenalenika | Дата: Суббота, 09.05.2015, 22:14 | Сообщение # 7 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Цитата Gracio001 ( ) Ну или проще сделать рандомное движение ( тоже хотелось бы узнать как)Сделай таймер сначала, по его истечении пиши: Код direction=irandom(270)//Направление движения - случайное, в диапазоне от 0 до 270.
а если стена?
|
|
| |
sasha | Дата: Суббота, 09.05.2015, 23:45 | Сообщение # 8 |
Очень почетный титул
Группа: Проверенные
Сообщений: 216
Награды: 3
Репутация: 86
Статус: Offline
| Про рандомный спавн в заданных точках:
Код if instance_number(enemy_obj)<4//если врагов меньше четырёх { a=instance_find(spawn_obj,irandom(instance_number(spawn_obj)-1))//выбирается случайный спавнпоинт instance_create(a.x,a.y,enemy_obj)//создаётся враг, на выбранном спавнпоинте } Собственно, раскидываешь по карте спавнпоинты("целевые точки", как их назвал Грацио), и в степе каково-нибуть CTRL_obj пишеш код, который указал выше, где enemy_obj - враг spawn_obj - спавнпоинт - невидимый объект. Можно без кода
Сообщение отредактировал sasha - Суббота, 09.05.2015, 23:48 |
|
| |
BRESS | Дата: Воскресенье, 10.05.2015, 06:21 | Сообщение # 9 |
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
| Точно. instance_number же есть. А я вчера сидел - вспоминал функцию для подсчета объектов. Уж решил не позориться, придумывая что-нибудь несуразное, а через instance_exists все сделать :D
А рандомное движение можно реализовать через встроенную возможность поиска путей. Просто задаешь рандомную точку и объект туда движется, огибая препятствия. Опять же, не помню, как делается, но могу если что освежить знания при помощи справки :)
Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
|
|
| |
lenalenika | Дата: Воскресенье, 10.05.2015, 13:21 | Сообщение # 10 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Цитата BRESS ( ) А рандомное движение можно реализовать через встроенную возможность поиска путей. Просто задаешь рандомную точку и объект туда движется, огибая препятствия. Опять же, не помню, как делается, но могу если что освежить знания при помощи справки :) может как то так mp_potential_step(random(x),random(y),3,0)
|
|
| |
BRESS | Дата: Воскресенье, 10.05.2015, 14:50 | Сообщение # 11 |
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
| Цитата lenalenika ( ) mp_potential_step(random(x),random(y),3,0) Упрется в ближайшую стенку, если коридоры узкие :D
Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
|
|
| |
lenalenika | Дата: Пятница, 15.05.2015, 16:10 | Сообщение # 12 |
Начинающий игродел
Группа: Пользователи
Сообщений: 85
Награды: 0
Репутация: 1
Статус: Offline
| Возник вопрос как соединить части игрока и придать им физику? Например для каждой части задать хп и когда хп заканчивается часть отваливается.
Сообщение отредактировал lenalenika - Пятница, 15.05.2015, 16:10 |
|
| |