Суббота, 16 Ноября 2024, 07:29

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
marsepДата: Четверг, 16 Мая 2013, 03:46 | Сообщение # 3921
участник
Сейчас нет на сайте
Подскажите, как привоить переменной значение в экземпляре какого-либо объекта, например:
for(i=0;i<10;i++)
{
instance_create(x,y,object);
}
Как задать создаваемому экземпляру объекта переменную, например, object.per=i
Короче, у меня должно быть 10 экземпляров объекта у которых переменная per=0...9, но у меня получается только присвоить 9, т.е. он присваивает всем экземплярам объекта.
Заранее спасибо!


Сообщение отредактировал marsep - Четверг, 16 Мая 2013, 03:47
GameMixДата: Четверг, 16 Мая 2013, 04:25 | Сообщение # 3922
старожил
Сейчас нет на сайте
Цитата (marsep)
i++

C++ вошёл в привычку? happy
Код
for(i=0; i<10; i+=1)  
{  
obj = instance_create(x,y,object); // записываем id созданного объекта в переменную obj
obj.per = i; // обращаемся к экземпляру через эту переменную
}


Steel Standoff - 2D аркада.
Мои статьи
TurugniteДата: Пятница, 17 Мая 2013, 23:43 | Сообщение # 3923
почетный гость
Сейчас нет на сайте
draw_sprite_part_ext - какие значения нужно указать, что бы вывести полный спрайт? (и да, лежать то она в draw должна? )

CryMaker: Mourning's Son
RhymeCaster
Humanity[Gamiron №5]
Abel399Дата: Суббота, 18 Мая 2013, 08:37 | Сообщение # 3924
Surpass your limits. Right now.
Сейчас нет на сайте
Turugnite,
1. Если ты имел ввиду вывести спрайт, как он есть, то наверняка так:
Код
width = sprite_get_width(sprite_index);
height = sprite_get_height(sprite_index);
draw_sprite_part_ext(sprite_index,image_index,0,0,width,height,x,y,image_xscale,image_yscale,c_white,1);

2. Да, все функции рисования в Game Maker'е пишутся в событии рисования (Draw Event).
3. Ну, а там уже изменяй переменные какие нужно...


Ninja Slayer - 2D Physics Puzzle [cancelled]

Сообщение отредактировал Abel399 - Суббота, 18 Мая 2013, 11:15
marsepДата: Воскресенье, 19 Мая 2013, 02:11 | Сообщение # 3925
участник
Сейчас нет на сайте
GameMix, почти, скорее С# )

Подскажите, как можно изменить значения переменных у определенного экземпляра объекта, например:
if (object.per==0)
{
per+=1;
}
Т.е. нужно изменить значение переменной только у экземпляра(ов) объекта у который переменная per=0... Как такое можно сделать? Заранее спасибо!

P.S. С предыдущей проблемай разобрался самостоятельно - все из-за невнимательности, что бывает чаще всего (


Сообщение отредактировал marsep - Воскресенье, 19 Мая 2013, 12:24
Abel399Дата: Воскресенье, 19 Мая 2013, 07:40 | Сообщение # 3926
Surpass your limits. Right now.
Сейчас нет на сайте
marsep, Если я правильно понял, то тебе нужно сделать проверку по всем объектам данного типа (например, проверить все экземпляры объекта obj_wall). Для этого можно использовать оператор "with". На твоем примере:
Код
with(object)
{
   if (per == 0)
   {
      per+=1;
   }
}

Следует подметить, что object - сам объект, а не переменная, в которой заключается определенный экземпляр объекта.
Думаю вопрос понял правильно, так что удачи smile


Ninja Slayer - 2D Physics Puzzle [cancelled]
marsepДата: Воскресенье, 19 Мая 2013, 12:23 | Сообщение # 3927
участник
Сейчас нет на сайте
Abel399, большое спасибо!
Gaydar1996Дата: Понедельник, 27 Мая 2013, 20:56 | Сообщение # 3928
участник
Сейчас нет на сайте
только недавно начал изучать gml, встал вопрос: в комнате есть двигающиеся объекты, границ у комнаты нет. надо чтобы вылетающие за границы комнаты объекты уничтожались, а вместо них создавались новые, на рандомных координатах. Как такое сделать?

NazaДата: Понедельник, 27 Мая 2013, 22:57 | Сообщение # 3929
GMUser
Сейчас нет на сайте
В событии OUTSIDE ROOM:
Код
instance_destroy();
var newx, newy;
while (!place_free(newx, newy))
{
   newx = irandom_range(0, room_width);
   newy = irandom_range(0, room_height);
}
instance_create(newx, newy, object);
Gaydar1996Дата: Понедельник, 27 Мая 2013, 23:17 | Сообщение # 3930
участник
Сейчас нет на сайте
Naza, спсибо. +

Andrey_MДата: Среда, 29 Мая 2013, 13:44 | Сообщение # 3931
старожил
Сейчас нет на сайте
У меня вопрос. (ГМ8)

Я создал некий объект, A.
И ещё один объект, B.

Я создал действие при нажатии на клавишу пробел, чтобы A телепортировался к B.
Кнопками, без ГМЛ.

Jump to position
x я взял B.x
y я взял A.x

Такое же использование сей команды было в примере из ГМ8, Street Racing, где police_car телепортировалась к позиции car_racing.x room height

У меня почти так же.

ПРИ ЗАПУСКЕ КОМНАТЫ И НАЖАТИИ ПРОБЕЛА ВЫДАЁТ:

___________________________________________
ERROR in
action number 1
of Keyboard Event for <Space> Key
for object A:

Error in expression:B.x
position 4: Unknown variable x


ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
Abel399Дата: Среда, 29 Мая 2013, 19:34 | Сообщение # 3932
Surpass your limits. Right now.
Сейчас нет на сайте
Andrey_M, Программе не известна данная переменная. Ты точно уверен, что твои объектты ак и называются - А и В? Ведь это непосредственно должен быть именно объект или его идентификатор. Если А и В - переменные, которые содержат в себе идентификатор, то значит они, видимо, локальные.. В общем проверь названия объектов и в коде используй именно их.

Ninja Slayer - 2D Physics Puzzle [cancelled]
GameMixДата: Среда, 29 Мая 2013, 19:47 | Сообщение # 3933
старожил
Сейчас нет на сайте
Andrey_M, также проверь, есть ли в комнате это объект B вообще. Возможно, из-за этого ошибка.

Steel Standoff - 2D аркада.
Мои статьи
Andrey_MДата: Среда, 29 Мая 2013, 20:39 | Сообщение # 3934
старожил
Сейчас нет на сайте
Хм, понял, в чём баг.

Объект B должен удалять все объекты, которые попадают в него, кроме A.
А получилось так, что при контакте с объектом он удаляет сам себя.
Пр генерации мира объекты накладывались на B и провоцировали его удаление.

Спасибо)


ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
sayranДата: Четверг, 30 Мая 2013, 13:45 | Сообщение # 3935
частый гость
Сейчас нет на сайте
Доброе время суток ! Подскажите такой момент - есть 3 комнаты, 1 и 2 - игровые а 3 - меню ! Как мне сделать чтобы можно было возвращаться из меню в ту же комнату из которой зашел в меню ?

poksДата: Пятница, 31 Мая 2013, 17:23 | Сообщение # 3936
почетный гость
Сейчас нет на сайте
Как проверить уничтожение объекта. То есть действие происходит только если объект уничтожен



Сообщение отредактировал poks - Пятница, 31 Мая 2013, 17:23
buftlerДата: Пятница, 31 Мая 2013, 20:17 | Сообщение # 3937

Добряк

Сейчас нет на сайте
poks, instance_exists(obj) (возвращает истину если объект существует, может использоваться id)
Для таких вопросов существует справка.
Код
if !instance_exists(mind) //если объекта не существует выполняется дальнейший код
{
var+=1
}


Сообщение отредактировал buftler - Пятница, 31 Мая 2013, 20:20
sayranДата: Воскресенье, 02 Июня 2013, 17:07 | Сообщение # 3938
частый гость
Сейчас нет на сайте
Как корректно написать скрипт сохранения и загрузки игры ?

StrekozlinskiДата: Воскресенье, 02 Июня 2013, 18:45 | Сообщение # 3939
почетный гость
Сейчас нет на сайте
Цитата (sayran)
Как корректно написать скрипт сохранения и загрузки игры ?

Вы хотели спросить, как корректно пользоваться поиском?


[2D] Литературовед [Google play]
AirwoltДата: Воскресенье, 02 Июня 2013, 18:52 | Сообщение # 3940
почти ветеран
Сейчас нет на сайте
Цитата (buftler)
if !instance_exists(mind) //если объекта не существует выполняется дальнейший код
{
var+=1
}

А можно и так :
Код
if instance_number(mind)=0
{var+=1}


Сообщение отредактировал wanrltw2000 - Воскресенье, 02 Июня 2013, 18:53
Поиск:

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