Anthem, обычно, тот кто создает объект должен отвечать за его содержимое. Т.е. делается функция обертка для создания и потом вызывается с нужными параметрами.
Я так понимаю, что использовать переменную в Create одного объекта, которая была инициализирована в Create другого объекта не совсем правильная практика.
Это правильная практика, а вот неправильно использовать переменные объекта, который еще не был инициализирован. Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
создание всех объектов происходит в определенном порядке, и один может не иметь возможности считать переменную из другого, если тот к этому моменту не был создан.
Я сталкивался с этим только когда создавал зависимые объекты не из другого объекта, а расстановкой в комнате. Тогда меня выручила возможность определения порядка создания объектов в комнате.
ЦитатаOpenGOO ()
Это правильная практика, а вот неправильно использовать переменные объекта, который еще не был инициализирован.
заметил странную фигню - рандом в GMS совсем не рандомный в отличие от GM8. дело в том, что часто используя команду irandom я делаю мир рогалика - и если в GM8 он разный, то в GMS при каждом тесте он всегда один и тот же, изо дня в день.такое ощущение, что в генераторе не используется текущее время для построения последовательности, что странно. наверное, стоит писать какой-то свой рандом. Последний готовый проект: флэппиберд с яйцами "Rescue Bird"(скачать с GooglePlay) В разработке: 3-в-ряд "Корабельная команда", рогалик "Живой Мир", квест "Экипаж "Солнечной" (ждите на КРИЛ-15!)
Сообщение отредактировал skypo - Суббота, 21 Февраля 2015, 18:16
Как писать по-русски в гмс? Знаю про шрифты, только какай там диапазон цифр? И в гм 8 можно было сразу определить, как тут? I dance only with russians.
комната и окно приобретают размеры экрана, но спрайты "пикселизируются" - они того же размера, что и до этой процедуры, но такое ощущение, что их сперва сжали (с потерей кач-ва), а потом растянули. в результате кубик 75 на 75 выглядит как 25 на 25 растянутый в 3 раза. интерполяция размывает, но проблемы не решает. такое ощущение, что где-то какая-то глобальная настройка косячит, но так и не нашел...
2)вот такой код
draw_set_color(c_black); draw_set_alpha(0.6); draw_rectangle(ax,ay,ax+draw_aw,ay+da,0); draw_set_alpha(1); draw_set_color(c_white); draw_text(ax, ay, txt_pwlevel); ay += da;
на полупрозрачной подложке должен быть непрозрачный шрифт, но вот только шрифт тоже почему-то полупрозрачный. интерполяцию отключал - все равно.
заметил, что в отладчике при запуске игры проскакивают такие строки: Application Surface created: w=204, h=204 вот это вот оно и есть - программа для рисования создает себе сурфейс размером с первоначальный размер первой комнаты и затем его использует, "натягивая" на экран игры. первую комнату можно сделать большой , но это не панацея, т.к. а)все равно будут графические артефакты при пожатии б)подозреваю, есть больше ресурсов вот как тут быть? куда вписать код, который стартует вперед всего?
комната и окно приобретают размеры экрана, но спрайты "пикселизируются" - они того же размера, что и до этой процедуры, но такое ощущение, что их сперва сжали (с потерей кач-ва), а потом растянули. в результате кубик 75 на 75 выглядит как 25 на 25 растянутый в 3 раза. интерполяция размывает, но проблемы не решает. такое ощущение, что где-то какая-то глобальная настройка косячит, но так и не нашел...
Прошу помочь знатоков. Есть игровое поле в клетку. При открытии клетки, если под ней монстр, нужно вокруг него заблокировать клетки. Сделал вот такой скрипт в step клетки, но он находит первого попавшегося врага, если их два, то начинает работать не корректно:
Код
var aaa; lock=0; if instance_exists(objVirus) //Если объект существует проверяем дальше { aaa=collision_rectangle(x-64,y-64,x+64,y+64,objVirus,0,1) //проверяем в радиусе 64 все клетки, находим врага и if aaa!=noone { draw_text(x,y,aaa) if aaa.activ=1 lock=1 //если враг активен, то ячейка блокируется }else lock=0 }else lock=0
Я так понимаю нужно копать в направлении ds_grid либо как то циклом перебирать врагов близлежащих. Проблема в том что есть враги активные и не активные. Клетка должна блокироваться если только рядом активные враги. Как сделать? LUXORIX GAMES
вообще неплохо бы ввести сетку, и к ней уже привязывать по х/у монстров, всякие поклеточные операции будут не в пример проще. что касается активных/пассивных, может закоротить на переменную visible - все равно, я так понимаю, неактивные "прячутся". если без сетки, то проверяем через with активных врагов и те, кто <=64 по х или по у по сравнению с координатами клетки - блокируют эту клетку. Последний готовый проект: флэппиберд с яйцами "Rescue Bird"(скачать с GooglePlay) В разработке: 3-в-ряд "Корабельная команда", рогалик "Живой Мир", квест "Экипаж "Солнечной" (ждите на КРИЛ-15!)