Присвоение личного числа
|
|
Krosos | Дата: Суббота, 20 Июля 2013, 01:57 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| У каждого юнита есть свое число О Оно отмечается в Create Есть ли способ , чтобы скрипт сам присваивал объекту число , и не приходилось создавать тонны объектов и каждому прописывать его? Числа у всех не должны совпадать иначе косяк....Но числа могут быть любыми.
Мой проект
|
|
| |
yarickyarick | Дата: Суббота, 20 Июля 2013, 02:28 | Сообщение # 2 |
Маленький лицемер
Сейчас нет на сайте
| Krosos, на сколько я знаю, тебе нужно проверить определнные данные для каждого объекта, чтобы именно ему присвоить число. Допустим Код If(Sprite.X == 10) { Sprite.O = 10; }
Зы. это на вскидку, я GML не знаю.
Сообщение отредактировал yarickyarick - Суббота, 20 Июля 2013, 02:29 |
|
| |
WfalconW | Дата: Суббота, 20 Июля 2013, 02:48 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Есть извращенный способ - в редакторе карты: ПКМ по объекту - создать код... Главное не забывать, что код будет выполняться перед Create.
Более правильный метод - наследование, скорее всего, но об этом пускай расскажут те, кто часто пользуется этим)
[2D] Paths of the rails v 1.1.0 [2D] Reflelight girl (Gamiron #4)
Сайт-блог разработок...
|
|
| |
Krosos | Дата: Суббота, 20 Июля 2013, 03:56 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| О точно! Я попробую использовать id. Опять мысли запоздало приходят...
нет....=( Ид не катит=(
ERROR in action number 1 of Create Event for object Letun:
Error in code at line 7: global.Class[O]='Letun' ^ at position 15: Array index >= 32000
O=10000/id
А нет , тоже не прокатило=( Получилась каша , он похоже прировнял все к одному числу...
yarickyarick, подобное не прокатит , у меня иерархия объектов. Сначала идут родители ИИ их много , потом идут Объекты ИИ , а потом идут экземпляры.
Мой проект
Сообщение отредактировал Krosos - Суббота, 20 Июля 2013, 03:57 |
|
| |
SkorpyX | Дата: Суббота, 20 Июля 2013, 03:59 | Сообщение # 5 |
участник
Сейчас нет на сайте
| можно просто написать:
О=id
|
|
| |
|
SkorpyX | Дата: Суббота, 20 Июля 2013, 04:05 | Сообщение # 7 |
участник
Сейчас нет на сайте
| можно написать obj.class='Letun'
Сообщение отредактировал SkorpyX - Суббота, 20 Июля 2013, 04:09 |
|
| |
Krosos | Дата: Суббота, 20 Июля 2013, 06:11 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| SkorpyX, ну летун - это одна из 1000 переменных у которых есть [O] обозначающее принадлежность
Мой проект
|
|
| |
GameMix | Дата: Суббота, 20 Июля 2013, 07:31 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Krosos, из ошибок понятно, что, видимо, тебе не хватает 32000 юнитов на карте, и игра до сих пор не виснет, хотя это странно. Единственное, что могу посоветовать в случае at position 15: Array index >= 32000 - использовать списки. В них можно хранить гораздо больше информации.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Vinchensoo | Дата: Суббота, 20 Июля 2013, 09:33 | Сообщение # 10 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| При создании объекта вызвать функцию getID(). Работает просто: 1. Есть глобальный счетчик объектов. Изначально он равен нулю. Пускай счетчик называется globalCount.
Тогда Код getid() { this.id= globalCount; globalCount++; }
Это не GML код, это просто суть алгоритма. Разберешься сам.
|
|
| |
Krosos | Дата: Суббота, 20 Июля 2013, 10:54 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| GameMix, Если создавать списки ,то мои нервы рассыпятся на маленькие атомы...=) Проблему я решил=) O=id-102000 Ид число равно где-то 102000.Если его убрать то , останется число подходящее под условие. at position 15: Array index >= 32000 Спасибо всем за помощь
Мой проект
Сообщение отредактировал Krosos - Суббота, 20 Июля 2013, 10:55 |
|
| |
MasterSambo | Дата: Суббота, 20 Июля 2013, 11:53 | Сообщение # 12 |
заслуженный участник
Сейчас нет на сайте
| Тоже сталкивался с этим, но так и не решил проблему. Krosos, ты не против, если я использую твой скрипт?
|
|
| |
Krosos | Дата: Суббота, 20 Июля 2013, 12:32 | Сообщение # 13 |
постоянный участник
Сейчас нет на сайте
| arkady, в нем нет ничего особенного , его могут использовать все.
Мой проект
|
|
| |
MasterSambo | Дата: Суббота, 20 Июля 2013, 12:50 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Цитата (Krosos) arkady, в нем нет ничего особенного , его могут использовать все. Спасибо!
|
|
| |
Krosos | Дата: Воскресенье, 28 Июля 2013, 02:35 | Сообщение # 15 |
постоянный участник
Сейчас нет на сайте
| Не прокатило =(
В общем я сделал новую фишку: System:
Step: if ds_queue_size(global.RespawnO)<20 //Если очередь меньше 20 иначе будет добавляться бесконечно , а нам это не нужно O+=1 //Сначала прибавляем 1 к О ds_queue_enqueue(global.RespawnO,O) //Заносим О в очередь } Объекты: Create: if O=0{O=ds_queue_dequeue(global.RespawnO)} //Если О равно нулю то внести число (сначала не сработает для последующих значений)
Step: if O=0{ //Если O равно нулю то... event_perform(ev_create,0) //Повторить событие Create ,это позволит значениям применить число О для себя exit}Добавлено (28.07.2013, 02:35) --------------------------------------------- А нет , event_perform(ev_create,0), использовать не рекомендуется!!! Столько цп сожрал , но в остальном скрипт идет отлично!И числа не совпадают!
Мой проект
Сообщение отредактировал Krosos - Воскресенье, 28 Июля 2013, 02:09 |
|
| |
Vinchensoo | Дата: Воскресенье, 28 Июля 2013, 09:05 | Сообщение # 16 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Готов поспорить, совпадут при массированном создании объектов.
|
|
| |
MasterSambo | Дата: Воскресенье, 28 Июля 2013, 09:25 | Сообщение # 17 |
заслуженный участник
Сейчас нет на сайте
| Цитата (Krosos) А нет , event_perform(ev_create,0), использовать не рекомендуется!!! Столько цп сожрал , но в остальном скрипт идет отлично!И числа не совпадают! Ой, хорошо!
|
|
| |
Krosos | Дата: Воскресенье, 28 Июля 2013, 12:47 | Сообщение # 18 |
постоянный участник
Сейчас нет на сайте
| Vinchensoo, не совпали , число O только одно , и оно может извлечься из очереди только один раз. Я использую множество объектов , респауню их , и никто не совпадает.Правда есть задержка с инициативой так , как объекты не мгновенно получают свои числа , но это ерунда.
Мой проект
|
|
| |