Пятница, 29 Ноября 2024, 00:02

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Вопрос касательно объектов
OmKolДата: Пятница, 02 Июля 2010, 19:05 | Сообщение # 1
был не раз
Сейчас нет на сайте
1. Имеется объект. Вот возьмём переменные x и y. Для каждого экземпляра (или копии или как они называются в Game Maker) объекта, помещаемого на карте, эти переменные разные - сами экземпляры находятся в разных же местах. А переменные, которые я создаю, присваиваются объекту в целом - то есть для каждого экземпляра значение переменной одинаково. Собственно как создать переменные, значения которых для разных экземпляров объекта будут разные, если это возможно?
Мой косяк - позор мне. Они и вправду локальны - это моя ошибка в коде, не самая очевидная.
2. Как узнать номер экземпляра объекта?


Сообщение отредактировал OmKol - Понедельник, 12 Июля 2010, 22:07
FedenkoVadikДата: Пятница, 02 Июля 2010, 21:40 | Сообщение # 2
Level 5 Gentleman
Сейчас нет на сайте
id
OmKolДата: Пятница, 02 Июля 2010, 22:09 | Сообщение # 3
был не раз
Сейчас нет на сайте
Quote (FedenkoVadik)
id

Хм, спасибо. Я почему-то сначала подумал, что id - это номер самого объекта.
FedenkoVadikДата: Суббота, 03 Июля 2010, 02:25 | Сообщение # 4
Level 5 Gentleman
Сейчас нет на сайте
Quote (OmKol)
номер самого объекта.

Quote (OmKol)
номер экземпляра объекта

есть разница? Хотя, он все равно не вернется...
OmKolДата: Суббота, 03 Июля 2010, 13:15 | Сообщение # 5
был не раз
Сейчас нет на сайте
Quote (FedenkoVadik)
есть разница? Хотя, он все равно не вернется...

Ну а как же - одних и тех же объектов может быть на карте помещено несколько (эти копии я и предпочитаю называть экземплярами, поправьте меня, если я использую неверный термин). Соответственно для каждого экземпляра объекта исполняется код. И иногда бывает удобно работать с id этого экземпляра объекта. Я правда ещё не пробовал - успел найти другую реализацию нужного мне алгоритма.
FedenkoVadikДата: Суббота, 03 Июля 2010, 13:39 | Сообщение # 6
Level 5 Gentleman
Сейчас нет на сайте
ах вот ты о чем. А вчера ночью не догадался. Кстати если поможет:
Если нужно узнать ид созданного объекта достаточно....
Code

id_o=instance_create(x,y,obj)
with (id_o)
{
ololololo
}


Сообщение отредактировал FedenkoVadik - Суббота, 03 Июля 2010, 20:44
QnizzaДата: Суббота, 03 Июля 2010, 18:42 | Сообщение # 7
почетный гость
Сейчас нет на сайте
не точку а равно надо ставить после id_o
FedenkoVadikДата: Суббота, 03 Июля 2010, 20:48 | Сообщение # 8
Level 5 Gentleman
Сейчас нет на сайте
ВСЕ ВРЕМЯ ЗАБЫВАЮ...
OmKolДата: Понедельник, 12 Июля 2010, 22:06 | Сообщение # 9
был не раз
Сейчас нет на сайте
И снова объекты. Вопрос:
Имеется игра, в которой имеются комната "Главное меню" и много комнат, где происходит игровой процесс. При входе в первую такую комнату инициализируется помещенный на карту объект, помеченный как постоянный и соответственно работающий в других комнатах. При возврате в главное меню надо убить этот объект, но при этом чтобы при заходе снова в комнату игрового процесса этот объект заново инициализировался. Можно его не убивать, но тогда будут не работать пункты меню в главном меню. Вопрос: Как убить, заморозить или что-нибудь ещё сделать с постоянным объектом, чтобы он не мешал? Или я может что-то не так делаю?

Вопрос закрыт и ответ этому вопросу instance_destroy()

Добавлено (12.07.2010, 22:06)
---------------------------------------------
И снова вопрос по так называемым экземплярам объекта - instances.
Я вот думаю, как узнать, какой экземпляр выполняется первым, а какой - последним. Это важно для совершения одной проверки, перед которой необходимо обнулить переменные.
Или возможно ли как-то схитрить и в самом коде создать экземпляр, выполняющийся первым? Вообще любым способом написать код, который гарантированно будет запускаться перед началом работы такого-то объекта.
Ах да, event Draw. Или использовать другой event?
Хмм, да тут вообще проблема необычного характера - похоже на то, что переменная обнуляется сама по себе. Либо инициализируется всё время event Create, хотя так не должно быть. Ничего не понимаю.
Теперь понял - один объект обращается с целью получить значение другой переменной, но... 0, 1, 24... переменные разные... у меня не укладывается это в голове.
А поставлю вопрос по другому - как определить, что объект встретился хотя бы с одним из множества экземпляров другого объекта?
Хм... заработал обычный place_meeting. А почему он раньше работал только с одним instance? Чудеса, глюки... Вопрос закрыт.

Сообщение отредактировал OmKol - Понедельник, 12 Июля 2010, 22:44
FedenkoVadikДата: Вторник, 13 Июля 2010, 00:49 | Сообщение # 10
Level 5 Gentleman
Сейчас нет на сайте
бло(( зачеркни это все! А то я читал как лошара, а
Quote (OmKol)
Вопрос закрыт.
OmKolДата: Пятница, 16 Июля 2010, 19:53 | Сообщение # 11
был не раз
Сейчас нет на сайте
Нет, это ещё не конец. Итак, выполняется код одного объекта. Затем выполняется код другого объекта. И мне нужно, чтобы после всех этих объектов выполнялся ещё некоторый код. Как это реализовывается?
Вопрос всё ещё актуален, хотя костыль в обход этого я уже реализовал.


Сообщение отредактировал OmKol - Пятница, 16 Июля 2010, 20:01
GLaDOSДата: Пятница, 16 Июля 2010, 20:21 | Сообщение # 12
частый гость
Сейчас нет на сайте
OmKol, Ну можно попробовать переменными сделать
OmKolДата: Пятница, 16 Июля 2010, 21:41 | Сообщение # 13
был не раз
Сейчас нет на сайте
Quote (GLaDOS)
OmKol, Ну можно попробовать переменными сделать

Переменными сделать что?

Я вообще не понимаю, в каком порядке выполняются объекты. Как мне кажется, параметр "Глубина" ни на что не влияет в плане порядка выполнения кода объектов.

Добавлено (16.07.2010, 21:16)
---------------------------------------------
Ладно, а вот теперь у меня такая задачка - получить x и y от всех instances объекта. Можно вручную взять номер каждого instance, но это слишком муторно - думаю, есть легче способ.

Добавлено (16.07.2010, 21:41)
---------------------------------------------
Или, например, несколько масок для объекта. В момент такого-то столкновения использовать такую-то маску, иначе другую.

Сообщение отредактировал OmKol - Пятница, 16 Июля 2010, 21:17
FedenkoVadikДата: Пятница, 16 Июля 2010, 23:05 | Сообщение # 14
Level 5 Gentleman
Сейчас нет на сайте
Quote (OmKol)
нужно, чтобы после всех этих объектов выполнялся ещё некоторый код. Как это реализовывается?

Короче есть событие End Step юзай его, то что ті там напишишь, будет віполяццо в конце.
Quote (OmKol)
В момент такого-то столкновения использовать такую-то маску, иначе другую.

Не помню точно название функций, помоему есть object_set_mask ну или чет в этом роде...
OmKolДата: Пятница, 16 Июля 2010, 23:52 | Сообщение # 15
был не раз
Сейчас нет на сайте
Quote (FedenkoVadik)
Короче есть событие End Step юзай его, то что ті там напишишь, будет віполяццо в конце.

Как много раз оно мне было нужно, но я уже решил всё по-другому. Потом пригодится.

Quote (FedenkoVadik)

Не помню точно название функций, помоему есть object_set_mask ну или чет в этом роде...

Ага, только я в мануале мало что понял по этому поводу, ну да ладно - мне же лучше, что не принялся писать извращенский код.
pla-xДата: Пятница, 16 Июля 2010, 23:58 | Сообщение # 16
был не раз
Сейчас нет на сайте
OmKol, пиши нормальные коды и все будет хорошо)

Per aspera ad astra...
Giper-RaperДата: Суббота, 17 Июля 2010, 11:09 | Сообщение # 17
частый гость
Сейчас нет на сайте
Ага. Токо рок не слушай))
  • Страница 1 из 1
  • 1
Поиск:

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