Пятница, 29 Марта 2024, 01:28

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Присвоение личного числа
Присвоение личного числа
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.
Опять мысли запоздало приходят... dry

нет....=(
Ид не катит=(

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 surprised biggrin

А нет , тоже не прокатило=( Получилась каша , он похоже прировнял все к одному числу...

yarickyarick, подобное не прокатит , у меня иерархия объектов.
Сначала идут родители ИИ их много , потом идут Объекты ИИ , а потом идут экземпляры.





Мой проект


Сообщение отредактировал Krosos - Суббота, 20 Июля 2013, 03:57
SkorpyXДата: Суббота, 20 Июля 2013, 03:59 | Сообщение # 5
участник
Сейчас нет на сайте
можно просто написать:

О=id
KrososДата: Суббота, 20 Июля 2013, 04:01 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
SkorpyX, написал уже -не катит ,но O=id-102000 прокатило biggrin

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





Мой проект
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 только одно , и оно может извлечься из очереди только один раз.
Я использую множество объектов , респауню их , и никто не совпадает.Правда есть задержка с инициативой так , как объекты не мгновенно получают свои числа , но это ерунда.





Мой проект
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Присвоение личного числа
  • Страница 1 из 1
  • 1
Поиск:

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