Среда, 27 Ноября 2024, 04:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Функции в 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 добавить. smile


qazerДата: Воскресенье, 23 Сентября 2012, 18:14 | Сообщение # 5
Borey Games
Сейчас нет на сайте
Ну да, я с аргументами и делал, просто лень здесь писать было, с телефона. Спасибо большое, с меня плюс, только завтра smile .
Dva_KotaДата: Понедельник, 24 Сентября 2012, 11:17 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Вместо
Code
if v_box (аргументы) = true {...}

можно писать
Code
if v_box (аргументы) {...}


Новый пример инвентаря! /20.06.2012/

Energy Wars
  • Страница 1 из 1
  • 1
Поиск:

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