Подскажите, как привоить переменной значение в экземпляре какого-либо объекта, например: for(i=0;i<10;i++) { instance_create(x,y,object); } Как задать создаваемому экземпляру объекта переменную, например, object.per=i Короче, у меня должно быть 10 экземпляров объекта у которых переменная per=0...9, но у меня получается только присвоить 9, т.е. он присваивает всем экземплярам объекта. Заранее спасибо!
Сообщение отредактировал marsep - Четверг, 16 Мая 2013, 03:47
for(i=0; i<10; i+=1) { obj = instance_create(x,y,object); // записываем id созданного объекта в переменную obj obj.per = i; // обращаемся к экземпляру через эту переменную }
draw_sprite_part_ext - какие значения нужно указать, что бы вывести полный спрайт? (и да, лежать то она в draw должна? ) CryMaker: Mourning's Son RhymeCaster Humanity[Gamiron №5]
2. Да, все функции рисования в Game Maker'е пишутся в событии рисования (Draw Event). 3. Ну, а там уже изменяй переменные какие нужно...
Если это тебе для твоего сосуда, то вот примерный код:
Код
//Water - количество жидкости, full - макс. кол-во жидкости, spr_sosud - сосуд, имеет два кадра: 0 - пустой, 1 - полный или просто жидкость(в соответствии с сосудом). //Рисуем фон(пустой сосуд) draw_sprite(spr_sosud, 0, x, y); //Рисуем сосуд с жидкостью на фоне draw_sprite_part(spr_sosud, 1, 0, sprite_get_height(spr_sosud)*(water/full), sprite_get_width(spr_sosud),sprite_get_height(spr_sosud), x, y);
Как видишь, обошлись даже обычным draw_sprite_part)
Подскажите, как можно изменить значения переменных у определенного экземпляра объекта, например: if (object.per==0) { per+=1; } Т.е. нужно изменить значение переменной только у экземпляра(ов) объекта у который переменная per=0... Как такое можно сделать? Заранее спасибо!
P.S. С предыдущей проблемай разобрался самостоятельно - все из-за невнимательности, что бывает чаще всего (
Сообщение отредактировал marsep - Воскресенье, 19 Мая 2013, 12:24
marsep, Если я правильно понял, то тебе нужно сделать проверку по всем объектам данного типа (например, проверить все экземпляры объекта obj_wall). Для этого можно использовать оператор "with". На твоем примере:
Код
with(object) { if (per == 0) { per+=1; } }
Следует подметить, что object - сам объект, а не переменная, в которой заключается определенный экземпляр объекта. Думаю вопрос понял правильно, так что удачи Ninja Slayer - 2D Physics Puzzle [cancelled]
только недавно начал изучать gml, встал вопрос: в комнате есть двигающиеся объекты, границ у комнаты нет. надо чтобы вылетающие за границы комнаты объекты уничтожались, а вместо них создавались новые, на рандомных координатах. Как такое сделать?
Andrey_M, Программе не известна данная переменная. Ты точно уверен, что твои объектты ак и называются - А и В? Ведь это непосредственно должен быть именно объект или его идентификатор. Если А и В - переменные, которые содержат в себе идентификатор, то значит они, видимо, локальные.. В общем проверь названия объектов и в коде используй именно их. Ninja Slayer - 2D Physics Puzzle [cancelled]
Объект B должен удалять все объекты, которые попадают в него, кроме A. А получилось так, что при контакте с объектом он удаляет сам себя. Пр генерации мира объекты накладывались на B и провоцировали его удаление.
Спасибо) ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
Доброе время суток ! Подскажите такой момент - есть 3 комнаты, 1 и 2 - игровые а 3 - меню ! Как мне сделать чтобы можно было возвращаться из меню в ту же комнату из которой зашел в меню ?