Художник пытается освоить GML
| |
Ferrumel | Дата: Пятница, 22 Апреля 2011, 14:20 | Сообщение # 201 |
почти ветеран
Сейчас на сайте
| аТнОтХоАн, ага примерно так и задумывал только в материальный смысл никак не мог привести. Спасибо за подробный пример. Извини, кроме как плюсиком в карму отблагодариь не могу. Dva_Kota, шикарно, мой архаичный и закосневший мозг до такого додуматься не смог бы. Quote Или можно сделать один объект, в нем массив вот это и буду пытаться реализовать, чтобы не плодить тучу объектов а потом путаться в них. -А это еще что за зверь?
все серо и пусто
|
|
| |
Dva_Kota | Дата: Пятница, 22 Апреля 2011, 14:47 | Сообщение # 202 |
заслуженный участник
Сейчас нет на сайте
| ds_map - словарь (чем-то на массив похож и на ini файл ). Наверное с массивами это я слишком разогнался... Наверное тут проще переменные использовать. У тебя много комнат? если нет то в объекте просто делай проверку какая сейчас комната и выполняй код который я писал выше. У тебя будет по две переменные для каждой комнаты.
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
Ferrumel | Дата: Понедельник, 25 Апреля 2011, 11:51 | Сообщение # 203 |
почти ветеран
Сейчас на сайте
| room_previous(numb) Расскажите пожалуйста, как работает эта функция. Я например пытаюсь использовать эту конструкцию, но ничего не происходит if room_previous(room0) then instance_create(32,416,object1)
все серо и пусто
|
|
| |
LunarPixel | Дата: Понедельник, 25 Апреля 2011, 13:47 | Сообщение # 204 |
старожил
Сейчас нет на сайте
| Допустим у тебя созданы комнаты в такой последовательности: room0 room1 room2 Если прописать room_previous(room1), то функция вернет значение предыдущей комнаты в списке, т.е. room0 На примере твоего кода, это будет выглядеть вот так: if room_previous(room1)=room0 then instance_create(32,416,object1) Сработает код независимо от того, в какой комнате будет находиться сам игрок. Т.е. если игрок будет в комнате room2, и в этой комнате будет выполняться вышеприведенный код, то в комнате room2 появится object1.
|
|
| |
GameMix | Дата: Понедельник, 25 Апреля 2011, 13:56 | Сообщение # 205 |
старожил
Сейчас нет на сайте
| Ни разу не приходилось пользоваться, т.к. пока без надобности. Quote (Справка Game Maker 8.0) room_previous(numb) Возвращает индекс предыдущей комнаты (-1 = ничего), но не совершает переход в неё. Вот так у меня работает: Code if room_previous(room) = -1 then instance_create(32,416,object1) Добавлено (25.04.2011, 13:56) --------------------------------------------- Опоздал .
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Ferrumel | Дата: Понедельник, 25 Апреля 2011, 14:03 | Сообщение # 206 |
почти ветеран
Сейчас на сайте
| Тоесть функция работает только со списком комнат совершенно не учитывая какая комната до этого была в игровом процессе?
все серо и пусто
|
|
| |
B@rney | Дата: Понедельник, 25 Апреля 2011, 14:12 | Сообщение # 207 |
заслуженный участник
Сейчас нет на сайте
| Ferrumel, да
Правильного решения порой нет, но лучшее решение есть всегда.
|
|
| |
GameMix | Дата: Понедельник, 25 Апреля 2011, 14:14 | Сообщение # 208 |
старожил
Сейчас нет на сайте
| Для такого случая можно сделать объект постоянным и в событии Room end написать: pr = room Затем: if pr = 0 {instance_create(32,416,object1)}
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Ferrumel | Дата: Среда, 27 Апреля 2011, 18:24 | Сообщение # 209 |
почти ветеран
Сейчас на сайте
| Товарищи, необходимо сделать контроллер. Программка что следит за всем ходом игры, держит в памяти все переменные, управляет квестами и прочими событиями. Как такое реализовывается? Просто сделал объект что хранит в себе глобальные переменные, при переходе в другую комнату, все переменные обнуляются до изначальных значений, а не хотелось бы.
все серо и пусто
|
|
| |
LunarPixel | Дата: Среда, 27 Апреля 2011, 18:27 | Сообщение # 210 |
старожил
Сейчас нет на сайте
| Сделай этот отдельный объект постоянным (в свойствах объекта поставь галочку Persistent/Постоянный) и помести только в первую комнату. Тогда он будет хранить значения с изменениями на протяжении всей игры.
|
|
| |
Ferrumel | Дата: Четверг, 28 Апреля 2011, 00:40 | Сообщение # 211 |
почти ветеран
Сейчас на сайте
| LunarPixel, блин не знал... Вот такие мелочи(((( Добавлено (28.04.2011, 00:40) --------------------------------------------- Народ! А кто сталкивался с лагами имен объектов и спрайтов? Например я имею комнату room0, следом после нее идет room1. Но при попытке перейти в нее ГМ заявляет что комнаты с таким именем не существует. Меняешь название например на roo1 все начинает работать. Также сегодня чуть мозг не угробил, ГМ не хочет реагировать на виды, думаю что за фигня? Все сверил(раз20) все идентично с работающей версией, реагирования на вид нет. Стал смотреть код интерфейса, понял, код интерфейса просто не работает, думаю ну почему. Начал просто методом тыка тупить пока не поменял название в коде, затем поменял название спрайта что код отрисовывает, вообще швах какой то наступил. Вместо интерфейса стал отрисовываться спрайт ПУЛИ!!!, какого хрена? У них названия даже не похожи! Кто такое встречал? Есть ли лекарство?
все серо и пусто
|
|
| |
GameMix | Дата: Четверг, 28 Апреля 2011, 08:09 | Сообщение # 212 |
старожил
Сейчас нет на сайте
| Quote (Ferrumel) Также сегодня чуть мозг не угробил, ГМ не хочет реагировать на виды, думаю что за фигня? Все сверил(раз20) все идентично с работающей версией, реагирования на вид нет. Стал смотреть код интерфейса, понял, код интерфейса просто не работает, думаю ну почему. Начал просто методом тыка тупить пока не поменял название в коде, затем поменял название спрайта что код отрисовывает, вообще швах какой то наступил. Вместо интерфейса стал отрисовываться спрайт ПУЛИ!!!, какого хрена? У них названия даже не похожи! Кто такое встречал? Есть ли лекарство? 1) draw_sprite(0,0,image_index,0); 2) draw_sprite(0,0,image_index,0); 3) draw_sprite(0,0,image_index,spr_interface); 4) draw_sprite_ext(0,0,image_index,...); Какой больше вариант похож на ваш способ рисования спрайта?
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
LunarPixel | Дата: Четверг, 28 Апреля 2011, 08:42 | Сообщение # 213 |
старожил
Сейчас нет на сайте
| аТнОтХоАн, думаю ни один не будет похоже... если я не ошибаюсь, из параметров сначала идет название спрайта, потом номер кадра, а потом координаты.. а у тебя наоборот... Ну это так, к слову... А по поводу проблемы, лучше взглянуть на сам код который работает не корректно, я с таким никогда не сталкивался...
Сообщение отредактировал LunarPixel - Четверг, 28 Апреля 2011, 09:00 |
|
| |
Robin_Locksley | Дата: Четверг, 28 Апреля 2011, 09:42 | Сообщение # 214 |
постоянный участник
Сейчас нет на сайте
| Я бы для начала проверил все переменные в коде. В отладочном режиме проганл все сомнительные на предмет не корректных значений а уже потом правил бы код.
|
|
| |
GameMix | Дата: Четверг, 28 Апреля 2011, 09:48 | Сообщение # 215 |
старожил
Сейчас нет на сайте
| аТнОтХоАн, Quote (LunarPixel) аТнОтХоАн, думаю ни один не будет похоже... если я не ошибаюсь, из параметров сначала идет название спрайта, потом номер кадра, а потом координаты.. а у тебя наоборот... Ну это так, к слову... Вообще то да, с функцией рисования текста, что-то попутал
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Ferrumel | Дата: Четверг, 28 Апреля 2011, 11:20 | Сообщение # 216 |
почти ветеран
Сейчас на сайте
| Думается мне код в порядке. Это внутренний лаг ГМ. Я в принципе научился перерабатывать чужие коды под свои нужды и даже писать свои. Тоесть ошибки в переменных вылавливать уже научился. Просто штука в чем, ну не нравится ГМу название какой то переменной, меняешь ее на любую произвольную, работает корректно, меняешь обратно на предыдущее имя, снова игнор или ошибка. Штука то в чем, у меня есть пара "исходников" на них тестирую все нововведения, если все нормально, переношу код уже в игровой движок. Все нормально. Я заметил какую штуку, подобные лаги появляются, когда в списке слева комнатспрайтовобъектов выполняешь какие то перетаскивания в папки, поставить комнату выше чтобы протестировать ее, меняешь названия объектов (в коде они естественно тоже меняются). Вот пример работы видов и интерфейса. Пока не поменял название спрайта с interface на interf он у меня рисовал спрайт laser вместо интерфейса, почему именно его, ума не дам. До сих пор не могу включить виды в комнате, все выставлено корректно, по сути идентично с тестовым исходником, но строчка кода полностью игнорируется.
все серо и пусто
|
|
| |
Dva_Kota | Дата: Четверг, 28 Апреля 2011, 11:30 | Сообщение # 217 |
заслуженный участник
Сейчас нет на сайте
| У тебя точно не совпадают имена переменных и ресурсов?
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
LunarPixel | Дата: Четверг, 28 Апреля 2011, 11:41 | Сообщение # 218 |
старожил
Сейчас нет на сайте
| Действительно, возможно у тебя просто совпадают названия переменных и спрайта. Есть переменная interface? Она у тебя возможно хранит число какое нибудь, которое расценивалось как индекс спрайта, и под этим индексом находится спрайт laser.
|
|
| |
Ferrumel | Дата: Четверг, 28 Апреля 2011, 11:48 | Сообщение # 219 |
почти ветеран
Сейчас на сайте
| room1 нигде больше не использовалось, кроме как в названии комнаты и в коде для перехода в нее. Не работало, roo1 заработало. interface использовалось только для спрайта что должен отрисовываться и соответственно только в коде что приказывал отрисовать спрайт. Рисовался спрайт laser хотя в коде было написано interface, поменял название на interf как спрайта так и в коде он стал отрисовываться, но некорректно. У меня есть еще одна мысль. Дело в том, чтобы изучить большую пачку исходников различных игр и примеров, я крякнул ГМ, может кряк был говенным? И у меня стало таким образом выбивать переменные? Купить его что ли сейчас?
все серо и пусто
Сообщение отредактировал Ferrumel - Четверг, 28 Апреля 2011, 11:54 |
|
| |
LunarPixel | Дата: Четверг, 28 Апреля 2011, 11:54 | Сообщение # 220 |
старожил
Сейчас нет на сайте
| Хм... Ну купить конечно его ничто не мешает, стоит он не дорого... ) Хотя у меня и с кряком таких проблем не возникало никогда.
|
|
| |
|