Начни с движения и прыжков. Вот так сказать "зачаток" файтинга, бот умеет: стрелять (обычные патроны и супер удар), прыгать, двигаться влево и вправо. (очень сырой пример, но работает на ура и додумать можно) Пример
Сообщение отредактировал Интернет - Пятница, 27 Мая 2016, 19:02
Чёрный прямоугольник поворачивается в сторону курсора, если же курсор будет на уровне жёлтой отметки, то прямоугольник отобразится по image_xscale в противоположную сторону. Проблема в том, что пуля которая должна вылетать из зелёного прямогугольника вылетает не из него, а где то из зада чёрного. Вот, что пишу
Если нужно проверять было ли нажатие кнопки, то вот
Код
if keyboard_check_pressed(ord('3')){ instance_create(200, 200, object3)}
Если нужно проверять было ли нажатие на объект, то вот.
Код
if mouse_check_button_pressed('Нужная кнопка, например mb_left')&& position_meeting(mouse_x,mouse_y,self){ instance_create(200, 200, object3)}//В Step.
В объекте который нужно уничтожить.
Код
if instance_exists(object3)>0{ instance_destroy()}
Аналогично другие.
Сообщение отредактировал Интернет - Пятница, 22 Апреля 2016, 19:22
Ну тогда не знаю. Могу предложить только. Сделать кнопку одним объектом, расплодить его экземпляры и каждому присвоить свой image_index. И при нажатии проверять
Код
position_meeting(mouse_x,mouse_y,self)
позицию курсора и в зависимости какой стоит image выполнять нужное действие.
Получть id экземпляра при создании (из другого объекта)
Есть 1 объект А, ставлю в комнату 8 экземпляров объекта А. (это делаю чтобы не создавать объекты А Б В Г и т.д) Так вот я хочу чтобы каждый, начиная с первого экземпляра, получил свой image_index, чтобы потом из объекта А руководить уровнями в зависимости какой стоит image.
8 уровней не 8 комнат (изменяется только одна)
Добавлено (28 марта 2016, 22:46) --------------------------------------------- Сделал так. В Create.
Увидел сообщение - что значит в другом объекте? Я же создаю o_case в Create объекта inv. Поясните, пожалуйста.
Да всё правильно просто цикл по созданию объекта нельзя ставить в этот же объект.
Добавлено (28 марта 2016, 13:27) --------------------------------------------- Ну тогда используй
Код
lengthdir_x(len,dir)
вместо len поставь 0 а вместо dir view_xview[0]. При поворотах вида будет возвращать горизонтальный компонент вектора то есть смещение 0. Ну да всё работает пишу в Draw
cell[0]=instance_create(view_xview[0]+352,view_yview[0]+560,o_case); cell[1]=instance_create(view_xview[0]+392,view_yview[0]+560,o_case); cell[2]=instance_create(view_xview[0]+432,view_yview[0]+560,o_case); cell[3]=instance_create(view_xview[0]+472,view_yview[0]+560,o_case); cell[4]=instance_create(view_xview[0]+512,view_yview[0]+560,o_case); cell[5]=instance_create(view_xview[0]+552,view_yview[0]+560,o_case); cell[6]=instance_create(view_xview[0]+592,view_yview[0]+560,o_case); cell[7]=instance_create(view_xview[0]+632,view_yview[0]+560,o_case); делал через for, но почему-то не срабатывает, так что не кидайтесь тапками)
Проблема такая. Есть один спрайт с 8 image, нужно чтобы экземпляры объекта с этим спрайтом, в зависимости от приоритета своего id, ставили нужный image_index. Делаю так. В Create объекта.
Код
global.os_yrov=ds_priority_create()//создаём приор. очередь ds_priority_add(global.os_yrov,other.id,other.id)// записываем id объекта и ставим приоритет id alarm[0]=10 //отсчитываем 10 единиц до записи всех id экземпляров в приор. очередь
В alarm[0]
Код
nomer=ds_priority_delete_min(global.os_yrov)//записываем наименьший id в переменную nomer и из очереди его удаляем alarm[0]=5
В Step Дальше я не знаю как сделать :( Например мы записали такие id (10000,10001,10002,10003) nomer=10000 (наименьшему) теперь нужно nomer.image_index =1 потом этот id из списка удалить и уже (10001,10002,10003) nomer=10001 (наименьшему) и nomer.image_index =2 и т.д, но почему то так не работает. :'(
Добавлено (28 марта 2016, 11:14) --------------------------------------------- Что не кто не знает?
Сообщение отредактировал Интернет - Понедельник, 28 Марта 2016, 09:42
Управление. UP-вверх Down-вниз Enter-рестарт при гибели ГГ Escape-главное меню. Гемплей. Управляйте pip'ом под весёлую музыку, чтобы не врезаться в летящие препятствия. Попробуйте набрать 2 000 тыс очков. Может игра и банальная (таких много) но всё же сыграйте, для меня это важно. Скриншот1 Скриншот2 Скриншот3 Игра
Сообщение отредактировал Интернет - Пятница, 25 Марта 2016, 12:39
Вопрос таков. Как лучьше или вообще как сделать дома в рпг. Делаю так, на карте много объектов (дома) при взаимодействии игрока с домом нас с большой карты перекидывает на маленькую, но есть много проблем. Чтобы, не делать для каждого дома отдельную комнату надо как-то распределить одну на все дома при том, что каждый, дома можно лутать (в них шкафы и т.д), а если у нас только одна комната, то нужно проверять в какой дом мы входили, а в какой нет (создаю словарь ds_map_create(), чтобы записывать id каждого дома), но вот главная проблема которую я не могу решить, есть в комнате пять шкафов (их проверку тоже можно реализовать с помощью словаря) так вот, как сделать зависимость, облутали в одном доме 2 шкафа, остальные не стали, вышли, вошли в другой, там облутали все, вышли, вошли обратно в другой, там так и есть 2 из 5 облутанных, а в другом 0. (всё одна комната) Или можно всё проще сделать? Или какие есть варианты?
Вопрос такой, как проверить есть элемент в списке или нет. Вот наример мы записали id определённого обекта в список ds_list_add(spis,id) теперь при нажатии на этот объект мы должны узнать есть он в списке или нет (точнее его id).
задай массив от 1 до 16 и когда объекту число назначаешь, то выбирай случайно из этого массива, а из массива это число убери, и следующему объекту уже будет выборка из 15 ну и т.д.
то есть по такому принципу r[0]=1,r[1]=2,r[2]=3........r[14]=15,r[15]=16, потом r=irandom_range(rt[0],rt[15]) if r=rt[0]{ irandom_range(rt[1],rt[15])} else{ if r=rt[1]{ irandom_range(rt[2],rt[15])} и тд. Так что ли?