Форум » Вопрос-Ответ » match3 » Ответить

match3

FatPir: Я создаю матч3 игру. Решил создавать движок сам. Проблема вот в чем: я начал со смены "кристаллов" местами. Позициями они меняются, вот обратно на свои не возвращаются (только в первый раз). http://dump.ru/file/1057076 Зы : если выбрать только 1 объект и нажать пробел - выдает ошибку.

Ответов - 16

!NTosKRNL: FatPir пишет: Позициями они меняются, вот обратно на свои не возвращаются (только в первый раз). Зы : если выбрать только 1 объект и нажать пробел - выдает ошибку. //OBJECT: obj_control //EVENT: Left Pressed //CODE: if (global.number=0)//if (global.number==0) { global.selest_first=gem_type; sel=1; global.number=1;//устанавливаем, что 1 объект выбран instance_create(x,y,sel_first)//создаем объект, показывающий какой кристалл выбран break } if (global.number=1)//if (global.number==1) { if((x=sel_first.x+64) || (x=sel_first.x-64) || (y=sel_first.y-64) || (y=sel_first.y+64)) { global.selest_second=gem_type; sel=2; global.number=2;//устанавливаем,что 2 объект выбран instance_create(x,y,sel_second)//создаем объект, показывающий какой кристалл выбран вторым } } if (global.number=2)//if (global.number==2) { break //ни че не делаем если 2 объекта уже выбранно } //OBJECT: obj_control //EVENT: <Space> //CODE if (global.number=2)//И НаХРена это присвоение двойки здесь??? if (global.number==2) { if (sel==1) { gem_type=global.selest_second } if (sel==2) { gem_type=global.selest_first } } if (global.number==1) { ForFP=show_message_ext("Координаты sel_second не определены, т.к. образец не создан, ибо левый клик не произведен и переменная number не проинициализирована двойкой","Че за херня?:(","ОК","GAME OVER") if(ForFP==1) while(true) show_message("Координаты sel_second не определены, т.к. образец не создан, ибо левый клик не произведен и переменная number не проинициализирована двойкой") if(ForFP==2) game_restart() if(ForFP==3) game_end() }

Lagevae: !NTosKRNL пишет: //И НаХРена это присвоение двойки здесь???В Гамаке проверку можно проверять и одним знаком, и присваиванием это не считается (когда в скобках).

!NTosKRNL: Lagevae пишет: В Гамаке проверку можно проверять и одним знаком, и присваиванием это не считается (когда в скобках). тогда гамак не позволил бы проверить наличие переменной при переданном значении в условии. && || ^^: комбинация Булевых значений (&& = and, || = or, ^^ = xor) < <= == != > >=: сравнение, результат истинный (1) или ложный (0) | & ^: поразрядные операторы (| = поразрядный или, & = поразрядный and, ^ = поразрядный xor) << >>: поразрядные операторы (<< = shift left, > > = shift right) + -: сложение, вычитание * / div mod: умножение, деление, целочисленное деление и по модулю Кинь ссылку не место в хелпе, где указана возможность проверки на равенство знаком присваивания в Game Maker!


Flooty: !NTosKRNL это в С++ так

!NTosKRNL: Flooty пишет: это в С++ так Да, и в Гамаке тоже

Flooty: ошибаешься в гамаке свой язык - GML он только похож на С++ так же как и LUA или Питон

!NTosKRNL: Flooty пишет: ошибаешься в гамаке свой язык - GML он только похож на С++ так же как и LUA или Питон свой язык GML похож на С++, Lua и Питон, но, заметь, имеет мало общего с синтаксисом интерпретаторов бейсика. Укажи, где я писал, что гамак транслирует скрипты С++ и не похож на Луа?

Lagevae: !NTosKRNL пишет: Кинь ссылку не место в хелпе, где указана возможность проверки на равенство знаком присваивания в Game Maker!Там нигде не написано, но он проверяет. Возьми да проверь, если не веришь.

FatPir: я обычно кновками пользуюсь, так что в ГМЛе не силен, но помойму он выполняет провепку одним знаком.FatPir пишет: Зы : если выбрать только 1 объект и нажать пробел - выдает ошибку. как это устранить я знаю просто неспешил.

!NTosKRNL: Lagevae пишет: не написано, но он проверяет Если в момент верификации твоя переменная равна значению X, а Код гласит, что if(Lagevae=X) { //... } то происходит ПРИСВАИВАНИЕ значения Х переменной Lagevae с дальнейшей проверкой наличия переменной Lagevae в памяти. Естественно, ничего не изменится, и будет выполнен блок после проверки Если же в момент верификации твоя переменная равна значению Y, то переменной Lagevae также присвоят значение X, произойдет проверка переменной на наличие и будет выполнен блок кода после проверки. Естественно, при этом Lagevae уже не будет равен Y и проверки на равенство НЕ ПРОИЗОЙДЕТ. Это же основы скриптинга на Game Maker!

Lagevae: !NTosKRNL пишет: Если в момент верификации твоя переменная равна значению X, а Код гласит, что if(Lagevae=X) { //... } то происходит ПРИСВАИВАНИЕ значения Х переменной Lagevae с дальнейшей проверкой наличия переменной Lagevae в памяти. Естественно, ничего не изменится, и будет выполнен блок после проверки Если же в момент верификации твоя переменная равна значению Y, то переменной Lagevae также присвоят значение X, произойдет проверка переменной на наличие и будет выполнен блок кода после проверки. Естественно, при этом Lagevae уже не будет равен Y и проверки на равенство НЕ ПРОИЗОЙДЕТ. Это же основы скриптинга на Game Maker! Мда? http://dump.ru/file/1058102

FatPir: да какая разница. !NTosKRNL может твой синтаксис и правильней, но нги чего не меняет. Проблема то в том что они по своим местам не возвращаются!

Ban Forever: люди, пользуйтесь дебагом, он для кого придуман?

FatPir: Ban Forever да пользоваться пользуюсь, но решить проблему не могу.

!NTosKRNL: Ппц... GML не позволяет дать значение переменной в ходе проверки. Lagevae спс за пример FatPir пишет: твой синтаксис и правильней Да нет, в GML можно и так, и эдак. Бьярна с Маркусом попутал.

Lagevae: !NTosKRNL пишет: Бьярна с Маркусом попутал.Та ничо, бывает =)



полная версия страницы