Вторник, 19 Ноября 2024, 03:28

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Художник пытается освоить GML
FerrumelДата: Пятница, 22 Апреля 2011, 14:20 | Сообщение # 201
почти ветеран
Сейчас на сайте
аТнОтХоАн, ага примерно так и задумывал только в материальный смысл никак не мог привести. Спасибо за подробный пример. Извини, кроме как плюсиком в карму отблагодариь не могу.

Dva_Kota, шикарно, мой архаичный и закосневший мозг до такого додуматься не смог бы.

Quote
Или можно сделать один объект, в нем массив
вот это и буду пытаться реализовать, чтобы не плодить тучу объектов а потом путаться в них.

Quote
или ds_map
-А это еще что за зверь?


все серо и пусто
Dva_KotaДата: Пятница, 22 Апреля 2011, 14:47 | Сообщение # 202
заслуженный участник
Сейчас нет на сайте
ds_map - словарь (чем-то на массив похож и на ini файл smile ).

Наверное с массивами это я слишком разогнался... Наверное тут проще переменные использовать. smile

У тебя много комнат? если нет то в объекте просто делай проверку какая сейчас комната и выполняй код который я писал выше. У тебя будет по две переменные для каждой комнаты.


Новый пример инвентаря! /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)
---------------------------------------------
Опоздал sad .


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) все идентично с работающей версией, реагирования на вид нет. Стал смотреть код интерфейса, понял, код интерфейса просто не работает, думаю ну почему. Начал просто методом тыка тупить пока не поменял название в коде, затем поменял название спрайта что код отрисовывает, вообще швах какой то наступил. Вместо интерфейса стал отрисовываться спрайт ПУЛИ!!!, какого хрена? У них названия даже не похожи!
Кто такое встречал? Есть ли лекарство? biggrin


все серо и пусто
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
старожил
Сейчас нет на сайте
аТнОтХоАн, думаю ни один не будет похоже... если я не ошибаюсь, из параметров сначала идет название спрайта, потом номер кадра, а потом координаты.. а у тебя наоборот... smile Ну это так, к слову...

А по поводу проблемы, лучше взглянуть на сам код который работает не корректно, я с таким никогда не сталкивался...




Сообщение отредактировал LunarPixel - Четверг, 28 Апреля 2011, 09:00
Robin_LocksleyДата: Четверг, 28 Апреля 2011, 09:42 | Сообщение # 214
постоянный участник
Сейчас нет на сайте
Я бы для начала проверил все переменные в коде. В отладочном режиме проганл все сомнительные на предмет не корректных значений а уже потом правил бы код.
GameMixДата: Четверг, 28 Апреля 2011, 09:48 | Сообщение # 215
старожил
Сейчас нет на сайте
аТнОтХоАн,
Quote (LunarPixel)
аТнОтХоАн, думаю ни один не будет похоже... если я не ошибаюсь, из параметров сначала идет название спрайта, потом номер кадра, а потом координаты.. а у тебя наоборот... Ну это так, к слову...

Вообще то да, с функцией рисования текста, что-то попутал biggrin


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
старожил
Сейчас нет на сайте
Хм... Ну купить конечно его ничто не мешает, стоит он не дорого... ) Хотя у меня и с кряком таких проблем не возникало никогда.

Поиск:

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