Четверг, 26 Декабря 2024, 04:05

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

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

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