Функции в game maker.
|
|
qazer | Дата: Воскресенье, 23 Сентября 2012, 17:49 | Сообщение # 1 |
Borey Games
Сейчас нет на сайте
| Здравствуйте. Вот в чем проблема: в коде появился повторяющийся элемент: проверка, находится ли кнопка мыши указанном прямоугольнике. До данного врмени я делал т.о.: if mouse_x>x1 and mouse_y>y1 and mouse_x<x2 and mouse_y<y2 then ... Подумал, неплохо бы написать функцию v_box(), в которую передаются аргументы х1,у1,х2,у2 и которая возвращает значение true, если курсор находится в указанном прямоугольнике. Так как никогда не делал свои функции в гм и поиски в справке о передаче аргументов в функцию не дали(не разобрался), решил обратится сюда. Помогите на данном примере объяснить составление функций и передачу аргументов. Добавлено (23.09.2012, 17:49) --------------------------------------------- п.с.Код, приведеный в пример, писался каждый раз отдельно для новых координат.
Сообщение отредактировал qazer - Воскресенье, 23 Сентября 2012, 17:54 |
|
| |
LunarPixel | Дата: Воскресенье, 23 Сентября 2012, 17:51 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Создаешь скрипт (например script_1) в соответствующей папке, в нем пишешь код, в коде переменные заменяешь на argument0, argument1, argument2.... Там, где нужно использовать скрипт, пишешь: script_1 (1, 2, 3...) 1,2,3 - соответственно значения переменных argument0, argument1, argument2
Если скрипт должен возвращать какое-то значение, то пишешь в конце return N, где N - переменная, значение которой нужно вернуть.
script_1 :
Code N = argument0 + argument1; return N;
script_1 (10,30) - вернет 40
|
|
| |
qazer | Дата: Воскресенье, 23 Сентября 2012, 18:07 | Сообщение # 3 |
Borey Games
Сейчас нет на сайте
| Смотри, я на своем примере вернул значение true, если все условия выполняются: if mouse_x>argument0 and mouse_y>argument1 and mouse_x<argument2 and mouse_y<argument3 then {return true} В основном коде if v_box()=true {...}, но этот код выпоняется почему-то всегда, то есть значение функциии всегда true. Else {return false} может надо добавить или в чем проблема?
Сообщение отредактировал qazer - Воскресенье, 23 Сентября 2012, 18:11 |
|
| |
LunarPixel | Дата: Воскресенье, 23 Сентября 2012, 18:10 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| if v_box (аргументы) = true {...}
Можешь и return false добавить.
|
|
| |
qazer | Дата: Воскресенье, 23 Сентября 2012, 18:14 | Сообщение # 5 |
Borey Games
Сейчас нет на сайте
| Ну да, я с аргументами и делал, просто лень здесь писать было, с телефона. Спасибо большое, с меня плюс, только завтра .
|
|
| |
Dva_Kota | Дата: Понедельник, 24 Сентября 2012, 11:17 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Вместо Code if v_box (аргументы) = true {...} можно писать Code if v_box (аргументы) {...}
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |