GMS 2 TDS Противник и его орудие
| |
trespass91 | Дата: Понедельник, 22 Июня 2020, 12:43 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Привет всем.Подскажите6у меня есть противники,двигаются у них примитивный ИИ движения к игроку: в Step противника.
Код //Следование врага за игроком избегая препятствия. if instance_exists(obj_tank) { if point_distance(x, y, obj_tank.x, obj_tank.y) > move_enemy_speed { mp_potential_step(obj_tank.x, obj_tank.y, move_enemy_speed, 1); } else { x = obj_tank.x; y = obj_tank.y; } }
Пытаюсь пушки прикрутить к ним(с направлением пушки на игрока проблем нет),но когда я задаю координаты объекта противник,то они перестают к игроку двигаться.(просто стоят и смотрят на меня) И подскажите как реализовать уничтожение пушки противника вместе с самим противником?
Нуб из нубов даже в GML.
|
|
| |
AlexanderBekker | Дата: Понедельник, 22 Июня 2020, 13:11 | Сообщение # 2 |
BekkerDev Studio
Сейчас нет на сайте
| Вот простейшая реализация уничтожения пушки вместе с танком: В Create объекту танка:
Код tower = instance_create(x, y, objTower); Событие Instance Destroy танка:
Код with tower instance_destroy();
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
Сообщение отредактировал AlexanderBekker - Понедельник, 22 Июня 2020, 13:11 |
|
| |
trespass91 | Дата: Понедельник, 22 Июня 2020, 13:34 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Цитата AlexanderBekker ( ) Вот простейшая реализация уничтожения пушки вместе с танком: В Create объекту танка: Код tower = instance_create(x, y, objTower);
Событие Instance Destroy танка: Код with tower instance_destroy();
Самая большая проблема всех новичков — они не умеют толково объяснять, что им нужно и что конкретно они не могут сделать. И сиди гадай. Вторая часть беды — идут в геймдев, не зная даже основ программирования. Грубо говоря, пытаются деревом сломать камень, когда стоит начать хотя бы с дерева. Ну и третья — хотят, чтобы всё делали за них, а сами даже не пытаются разобраться в проблеме. Опыт ведь приобретается от твоих личных достижений. И хуже всего, когда с бедой сталкиваешься в полном её составе. Спасибо.сейчас попробуем.Функцию "With" еще не сильно изучил.А насчет того,что после прикручивания башни к противнику у них пропадает желание двигаться ко мне,это можн окак-то решить?Или я не в том событии пытаюсь это сделать? Вот пример тут же на форуме взял:
Код //В Create противника: gun = instance_create(x, y, obj_weapon)
//В End Step врага: gun.x = x gun.y = y Не понятно.=(
Нуб из нубов даже в GML.
|
|
| |
AlexanderBekker | Дата: Понедельник, 22 Июня 2020, 13:36 | Сообщение # 4 |
BekkerDev Studio
Сейчас нет на сайте
| Цитата trespass91 ( ) А насчет того,что после прикручивания башни к противнику у них пропадает желание двигаться ко мне,это можн окак-то решить? Объект башни может преграждать путь противников, если он твёрдый. Посмотри, стоит ли галочка напротив параметра Solid, и если да, то убери её.
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
| |
trespass91 | Дата: Понедельник, 22 Июня 2020, 13:47 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Цитата AlexanderBekker ( ) А насчет того,что после прикручивания башни к противнику у них пропадает желание двигаться ко мне,это можн окак-то решить?
Объект башни может преграждать путь противников, если он твёрдый. Посмотри, стоит ли галочка напротив параметра Solid, и если да, то убери её. Solid у меня только у стен стоит.Остальные объекты без него и физика ни у кого не включена.хм...Добавлено (22 Июня 2020, 13:58) ---------------------------------------------
Цитата AlexanderBekker ( ) Событие Instance Destroy танка: Код with tower instance_destroy(); Написал этот код в Step объекта противника.Не заработало. Создал событие при столкновении с пулей игрока и туда написал:
Код instance_destroy();//Уничтожение противника вместе с пушкой. with tower instance_destroy(); И оно как-то заработало.Хоть и выглядит,как мне кажется,не корректно.
Нуб из нубов даже в GML.
|
|
| |
AlexanderBekker | Дата: Понедельник, 22 Июня 2020, 14:08 | Сообщение # 6 |
BekkerDev Studio
Сейчас нет на сайте
| Цитата trespass91 ( ) Solid у меня только у стен стоит.Остальные объекты без него и физика ни у кого не включена.хм...
Код mp_potential_step(obj_tank.x, obj_tank.y, move_enemy_speed, 1); Попробуй тогда вместо 1 поставить 0.
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
| |
trespass91 | Дата: Понедельник, 22 Июня 2020, 14:19 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Цитата AlexanderBekker ( ) Solid у меня только у стен стоит.Остальные объекты без него и физика ни у кого не включена.хм...
Код mp_potential_step(obj_tank.x, obj_tank.y, move_enemy_speed, 1);
Попробуй тогда вместо 1 поставить 0. Помогло.А я даже и не подумал об этом параметре.0 - это же я так понимаю избегать всех объектов,а не только Solid. Но теперь башни противников продолжают смотреть за игроком и стоять при этом на месте,а сами противники следуют за мной.Мне кажется здесь нужно Draw задействовать ли нет?
Нуб из нубов даже в GML.
Сообщение отредактировал trespass91 - Понедельник, 22 Июня 2020, 14:25 |
|
| |
AlexanderBekker | Дата: Понедельник, 22 Июня 2020, 14:26 | Сообщение # 8 |
BekkerDev Studio
Сейчас нет на сайте
| Цитата trespass91 ( ) 0 - это же я так понимаю избегать всех объектов,а не только Solid. Последний параметр checkall отвечает за то, какие объекты следует обходить: все (1) или только твёрдые (0).
Цитата trespass91 ( ) Но теперь башни противников продолжают смотреть за игроком,а сами противники следуют за мной.Мне кажется здесь нужно Draw задействовать ли нет? А как именно это должно работать? Распиши подробнее и мы подумаем, что можно сделать.
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
| |
trespass91 | Дата: Понедельник, 22 Июня 2020, 14:36 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Цитата AlexanderBekker ( ) А как именно это должно работать? Распиши подробнее и мы подумаем, что можно сделать. Да достаточно просто по задумке.По сути у игрока есть танк и к нему прикручена башня(вращается на позицию мыши по Х и У).То же самое и у противника сделать хочу.Есть корпус противника и есть башня.Поворот я прописал,чтобы на игрока смотрели.А вот когда двигаться начинают,то делают они это без пушек,пушки стоят на месте и целятся в игрока.как то так =(Добавлено (22 Июня 2020, 14:40) --------------------------------------------- Пока что у меня получилось сделать так,чтобы только один противник двигался с пушкой к игроку. добавив в объект пушки в Begin step: x = obj_enemy.x; y = obj_enemy.y;
Как убиваю этого с пушкой,она сразу же отрисовывается на следующем противнике.Но не вместе. Я слышал есть така штука как ID.Может ее стоит как то применить?
Нуб из нубов даже в GML.
|
|
| |
AlexanderBekker | Дата: Понедельник, 22 Июня 2020, 14:47 | Сообщение # 10 |
BekkerDev Studio
Сейчас нет на сайте
| Теперь понял, что ты хочешь сделать. Это делается всё очень просто, как раз работа с ID. Удали весь код из объекта пушки, а в объект танка вставь: Create:
Код tower = instance_create(x, y, objTower); End Step:
Код tower.x = x; tower.y = y; tower.image_angle = point_direction(x, y, objPlayer.x, objPlayer.y); Instance Destroy:
Код with tower instance_destroy();
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
| |
trespass91 | Дата: Понедельник, 22 Июня 2020, 14:57 | Сообщение # 11 |
был не раз
Сейчас нет на сайте
| Цитата AlexanderBekker ( ) Теперь понял, что ты хочешь сделать. Это делается всё очень просто, как раз работа с ID. Удали весь код из объекта пушки, а в объект танка вставь: Create: Код tower = instance_create(x, y, objTower);
End Step: Код tower.x = x; tower.y = y; tower.image_angle = point_direction(x, y, objPlayer.x, objPlayer.y);
Instance Destroy: Код with tower instance_destroy();
Офигеть.Это заработало.Большущее спасибо тебе за помощь.Пойду почитаю код и попробую его понять.Я с этим день точно бился.Нужно будет конкретно почитать про Events.фуф=)
Нуб из нубов даже в GML.
|
|
| |
|