Понедельник, 25 Ноября 2024, 11:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
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.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг