аТнОтХоАн, возможно тебе поможет сама программа Game Maker. В меню Правка --> показать информацию об объекте. Будет показана вся информация о всех объектах. Копируешь эту информацию из обоих проектов, а потом сравниваешь при помощи программы WinMerge (или какой-нибудь другой). Новый пример инвентаря! /20.06.2012/
Первая ошибка: Внимательнее нужно было читать описание примера. Первая ошибка или из-за того что ты не поставил в комнату объект obj_load_resurs, или из-за того что не загрузил спрайт и не записал его индекс в переменную sp_gm_strip (т.к. в ошибке написано что нет такой переменной)
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig) Добавляет изображение, хранящееся в файле fname к спрайтовым ресурсам. Много различных типов файлов изображений могут быть загружены. Если изображение не GIF файл, рисунок может быть в виде стрипа, содержащей ряд кадров спрайта рядом друг с другом. Аргумент imgnumb указывает их количество (1 для одного изображения). Для (анимации) GIF изображения, этот аргумент не используется, а используется количество кадров записанное в формате GIF-файла. removeback указывает, следует ли сделать все пиксели с цветом фона (левый нижний пиксель) прозрачными. smooth указывает сгладить ли края. xorig и yorig показывают положение центра спрайта. Функция возвращает индекс нового спрайта, которые можно затем использовать для рисования или присвоить его переменной sprite_index в объекте. При возникновении ошибки возвращается -1.
Для стрип анимации вместо imgnumb ставь количество кадров, чтобы не было зеленого фона removeback ставь true Новый пример инвентаря! /20.06.2012/
Вот здесь статья про загрузку ресурсов из папки (звуки, тайлы, спрайты, бэкграунды): http://forum.hellroom.ru/index.php?topic=2239.0
Здесь написано как сделать автоматическую загрузку ресурсов и назначение этих ресурсов объектом (код загружает ресурсы и сам определяет какой спрайт какому объекту какой спрайт назначить): http://forum.hellroom.ru/index.php/topic,5133.0.html Новый пример инвентаря! /20.06.2012/
2. Лучше будет второй вариант предложенный vasyan555 - рисовать несколько спрайтов в событии Draw у игрока при помощи функции draw_sprite() Новый пример инвентаря! /20.06.2012/
функция instance_nearest() не правильно написана. первые два аргумента - координаты, третий - объект.
Вот таким кодом можно это осуществить:
Code
with(obj_block) { if (distance_to_object(other)<other.radius) { instance_destroy(); } }
вот пример:
Добавлено (23.05.2011, 17:16) --------------------------------------------- если объектов obj_block много и ты не используешь деактивацию то можно перед выполнением кода деактивировать все объекты за пределами вида (или на на расстоянии чуть больше радиуса взрыва) от бомбы, выполнить уничтожение, а потом снова все активировать.
Сдвиг обьекта даже на 1 пиксель дает значение переменной отличное от нуля.
Если движение сделано изменением координат, а не через переменные speed, hspeed (как у автора темы), то эти переменные не будут меняться, их значения будут равны 0. Новый пример инвентаря! /20.06.2012/
Ты, скорее всего, создаешь переменную в одном объекте, а обращаешься к ней в другом объекте. Если так, то когда проверяешь переменную ставь перед именем переменной имя объекта, в котором ее задаешь. Например так:
Code
If obj.game = 0
Или проверяешь переменную до того как она была создана.
Йакуд описывает схему когда есть несколько групп объектов, тогда для всех групп создается только один родитель, а группы различаются по переменным. Когда много групп так, наверное, действительно будет лучше. Но т.к. здесь только одна группа объектов можно будет обойтись без переменной. Новый пример инвентаря! /20.06.2012/
Dva_Kota, мне кажется, что система с доп переменной будет работать побыстрее, чем на каждый тип своего родителя создавать..
На сколько я понял у него всего одна группа (оружие) по этому будет нужен лишь один родитель. И с родителем, думаю, будет работать быстрее, т.к. в твоем случае проверяются все объекты в комнате ("with(all)"), а в случае с родителем - не будет выполняться проверка для каждого объекта, а просто удалятся все объекты для которых указанный в коде объект будет родителем. Новый пример инвентаря! /20.06.2012/
vsDaTavs, Дело в том, что эти объекты - руки с РАЗНЫМ оружием. Там не может быть одинакового кода.
Какого одинакового кода? Просто создаешь пустой объект-родитель (его деже в комнату не нужно ставить), а когда тебе нужно уалить все объекты из этой группы выполняешь код:
только не в Step, а в End Step, иначе при движении будет отставать от игрока. Или просто рисовать спрайт брони в драв. Новый пример инвентаря! /20.06.2012/
Возможно у тебя стоит привязка вида Хгр и Угр половина высоты и ширины вида. Поставь половина вида - 40. Например если вид у тебя 640х480 то привязка будет 300, 220. Новый пример инвентаря! /20.06.2012/
if (point_direction(x,y,второй_объект.x,второй_объект.y)>90 and point_direction(x,y,второй_объект.x,второй_объект.y)<180) { //действие }
Если в комнате есть несколько образцов второго объекта и тебе нужно проверять угол к ближайшему тогда так:
Code
if (point_direction(x,y,instance_nearest(x,y,второй_объект).x,instance_nearest(x,y,второй_объект).y)>90 and point_direction(x,y,instance_nearest(x,y,второй_объект).x,instance_nearest(x,y,второй_объект).y)<180) { //действие }
Добавлено (28.04.2011, 16:50) --------------------------------------------- Или заранее находить индекс ближайшего врага, записывать в переменную, а потом использовать в проверке переменную:
Code
a = instance_nearest(x,y,второй_объект);
if (point_direction(x,y,a.x,a.y)>90 and point_direction(x,y,a.x,a.y)<180) { //действие }