Движение экземпляров обекта
|
|
Sdydent | Дата: Вторник, 17 Октября 2017, 16:45 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| В комнату(комната пустая) спавнятся 10 экземпляров одного объекта с заданным интервалом. Все двигаются по цепочке по заданному пути. В конце пути естественно останавливаются все в одной точки конца пути. Kак сделать что бы после окончания пути каждый экземпляр направлялся к своей указанной координате ? Понимаю что нужно экземпляры объекта направить через id , но с найденными примерами не смог разобраться. Может еще варианты есть?
|
|
| |
nekroo98 | Дата: Среда, 18 Октября 2017, 09:34 | Сообщение # 2 |
почетный гость
Сейчас нет на сайте
| спавни обьекты не просто через instance_create, а через NewObject0=instance_create(x,y,obj), NewObject1=instance_create(x,y,obj)... Потом задавай точку, куда надо отправить их в конце обращаясь к ним не как к обьектам, а как к переменным NewObjectX
|
|
| |
Sdydent | Дата: Среда, 18 Октября 2017, 16:01 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Это видимо нужно сделать через оператор for что бы он менял переменные что бы в ручную не прописывать NewObject0=instance_create(x,y,obj), NewObject1=instance_create(x,y,obj)... ,а обращаться через with. Если так можно пример кодом не могу сообразить до конечного результата что и где прописывается. Добавлено (18 октября 2017, 14:28) --------------------------------------------- В пустом объекте (creat) который размещен в комнате for( i=0;i<10;i++) { global.massiv[i]=instance_create(x,y,obj_enemy) }; В obj_enemy creat: path_start(......)
В obj_enemy step: if id=global.massiv[0]{move_towards_point(...)}; if id=global.massiv[1]{move_towards_point(...)}; и тд. Остался один момент.Как сделать появление с определенным интервалом? Добавлено (18 октября 2017, 16:01) --------------------------------------------- Короче помоги себе сам, ладно всем спс.
|
|
| |
MrSlap | Дата: Понедельник, 23 Октября 2017, 05:05 | Сообщение # 4 |
почетный гость
Сейчас нет на сайте
| Sdydent, так это просто. Ты можешь попробовать запихать этот цикл в алярм, и обновлять его по истечению времени. Это самый простой вариант. Интереснее, сделать с помощью переменной, которая в step будет считать нужное количество шагов, потом - если прошло столько-то шагов, запускается цикл, а степ обнуляется. Принцип тот же, но больше гибкости.
Код create //писать в create объекта (num=0 maxnum=100 ) step //писать в шаге if (num<maxnum) { //задаём интервал num+=1 }else{ num=0 for (i = 0; i<10; i+=1) {...}//твой массив } например, при определённых обстоятельствах можно изменить maxnum и соответственно - время спавна.
Создаю интерактивную повесть.
Сообщение отредактировал MrSlap - Понедельник, 23 Октября 2017, 05:06 |
|
| |
Sdydent | Дата: Понедельник, 23 Октября 2017, 17:43 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Что через алярм что тот вариант который ты написал создают 10 экземпляров объекта за один раз с определенным интервалом. Мне всего 10 надо с определенным интервалом. Видимо ето можно сделать только в ручную NewObject0=instance_create(x,y,obj), NewObject1=instance_create(x,y,obj)... ,но чета не очень ка-кто.
|
|
| |
nekroo98 | Дата: Четверг, 26 Октября 2017, 11:38 | Сообщение # 6 |
почетный гость
Сейчас нет на сайте
| задай в алярм[0] NewObject=instance_create(x,y,obj); alarm[0]=интервал времени;
далее ты обращаешься к NewObject и задаешь ему нужные параметры, координаты и прочее. затем срабатывает алярм, и переменная NewObject обновляется, и ты образаешься по ней уже к новосозданному экземпляру, задавая параметры ему. и т.д.
Это конечно, если ты будешь задавать параметры обьекту NewObject сразу после создания, пока алярм не сработает второй раз.
NewObject.move_to_x=10 NewObject.move_to_y=10
Ну и задаешь движение по этим координатам конце пути.
|
|
| |
Sdydent | Дата: Вторник, 14 Ноября 2017, 16:00 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Я просто думал может это через массив можно сделать как ни будь ,что бы в ручную это все не прописывать а так я кейсом сделал. Добавлено (27 октября 2017, 20:58) --------------------------------------------- У меня еще вопрос.Допустим спавнится 10 экземпляров одного танка разом в разные координаты. Как создать всем этим экземплярам танка 10 экземпляров башни . Подскажите решение . Добавлено (31 октября 2017, 11:07) --------------------------------------------- https://gcup.ru/forum/36-18241-1 Здесь нашел. Добавлено (14 ноября 2017, 16:00) --------------------------------------------- Как то можно подсчитать количество экземпляров в комнате в определенной зоне. Добавлено (14 ноября 2017, 16:00) --------------------------------------------- ?????
|
|
| |
ASH2 | Дата: Четверг, 16 Ноября 2017, 12:29 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Sdydent, ну вот, как пример... Проверка в данном случае по координатам объекта, но тут кто как хочет, можешь запихнуть проверку по границам спрайта.
Код //Координаты где ищем xZona1=100; xZona2=700; yZona1=250; yZona2=550;
nCount=0;//Кол-во элементов with (obj)//obj-экземпляры какого объекта считаем { if (x>other.xZona1 && x<other.xZona2 && y>other.yZona1 && y<other.yZona2) other.nCount++; }
Карсон и Питееерс!!!
Сообщение отредактировал ASH2 - Четверг, 16 Ноября 2017, 12:30 |
|
| |