Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GM - Делюсь опытом (Часть первая).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
344.82 Кб
Скачать

Оператор цикла do:

Давайте рассмотрим теперь оператор цикла do

do // Делать это

{

x = random(room_width);

y = random(room_height);

}

until(place_free(x,y)) // До тех пор пока не будет возвращена Ложь.

Оператор цикла for:

Далее у нас на сцене появляется оператор цикла for

На мой взгляд, то этот оператор широко применим, и довольно таки мощный.

Давайте рассмотрим его вблизи:

Ключевое слово for, затем открывается круглая скобка ( в круглых скобках, сначала, определяется стартовая позиция цикла, затем позиция, до которой требуется делать циклы, ну и последнее, это шаг перехода на следующий цикл, затем скобка закрывается ) и открываются плавающие скобки {}

Давайте я продемонстрирую:

for(n = 0; n <= 10; n += 1)

{

// Делаем что-то 11 циклов, как пример, мы можем увеличить переменную на 11

myAge += 1;

}

Так же, мы можем начать с другого значения и закончить другим, а так же сделать шаг больше.

for(n = 2; n < 30; n += 2)

{

myAge += 1; // Равно 14, при условии что переменная изначально равно нулю.

}

Поскольку, мы начинаем уже с 2, то цикл сократился на 2 шага, мы продолжаем цикл пока n меньше 30, и каждый шаг увеличиваем n на 2.

То значит: 30 шагов - 2 шага = 28 шагов в цикле, 28 / 2 наша степень роста шага = 14.

Теперь я покажу вам, что в цикле может быть ещё один цикл и двумерный массив, естественно вы можете комбинировать циклы с другими конструкторами и наоборот:

i = 0;

for(xx = 0; xx <= 5; xx += 1)

{

for(yy = 0; yy <= 5; yy += 1)

{

myArray[xx,yy] = i;

i = i+1;

}

}

Я объявил переменную «i = 0;», в цикле она увеличивается каждый раз на 1, но первое значение, которое применяется массиву в индекс [0,0] равное нулю, так как переменная «i» увеличивается в конце шага, это для последовательного заполнения массива цифрами от 0 до 25, поскольку шаги 5x5.

Теперь посмотрим, идет первый шаг в первом цикле, во втором цикле «for» проходит 6 шагов за это время.

Далее идет второй шаг в первом цикле «for», во втором цикле «for» снова проходит 6 шагов, от 0 до 5 нулевой шаг включительно.

Поэтому Массив получается, заполнен значениями в таком порядке:

myArray[0,0] = 0

myArray[0,1] = 1

myArray[0,2] = 2

myArray[0,3] = 3

myArray[0,4] = 4

myArray[0,5] = 5

myArray[1,0] = 6

myArray[1,1] = 7

myArray[1,2] = 8

myArray[1,3] = 9

myArray[1,4] = 10

myArray[1,5] = 11

Дальше думаю не нужно объяснять.

Оператор повторения repeat:

Давайте перейдем к оператору повтора repeat

Это тоже оператор цикла, но тут всё очень просто как два пальца обделать.

Мы можем просто записать:

repeat(50)

{

myAge += 1;

}

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

Функции:

И так, хочу теперь рассказать вам о функциях.

Функции слаживаются из таких компонентов как:

  1. Возвращаемый тип значения функции.

  2. Имя функции.

  3. Аргументы функции.

Возьмем обычную функцию random, это выглядит так:

n = random(x);

Где random это имя функции, имя функции, так же как и переменная, должна учитывать правила написания имени, об этом мы уже говорили выше.

В круглых скобках (x) где «x» это Аргумент функции, Аргументов может быть много, это зависит от реализации функции и от того какие операции она выполняет над данными.

Аргументы перечисляются через запятые «,».

Давайте возьмем функцию, где есть более одного Аргумента.

move_towards_point(x,y,sp);

Где «x» «y» и «sp» являются аргументами функции.

Функция двигает объект к заданной точке x,y координат с заданной скоростью sp.

На деле это выглядит так:

move_towards_point(100,100,4);

Объект будет двигаться в позицию x.100 y.100 со скоростью 4.

В «Game Maker» есть так же Скрипты, в них мы можем сами сделать функцию, а потом по имени скрипта вызывать её и пользоваться ею, кстати, скрипты почти всегда используются при импорте Библиотечных функций.

Вы можете создать Скрипт двумя способами:

  1. Меню Ресурсы -> Создать Скрипт.

  2. Правый клик на папку Скрипты -> Создать скрипт.

Давайте я приведу пример функции с Аргументами с помощью скрипта, которая вычисляет разницу между человеческим возрастом:

if(argument0 == argument1)

{

return 0;

}

else if(argument0 > argument1)

{

show_message("Вы старше на: "+string(argument0 - argument1));

return true;

}

else

{

if(argument0 < argument1)

{

show_message("Вы меньше на: "+string(argument1 - argument0));

return true;

}

}

Допустим у нас скрипт с именем age, то вызов его происходит следующим образом:

if(age(10,10) == 0)

{

show_message("Нет разницы!");

}

Я сделал через условие if, поскольку, моя функция возвращает значение 0, в случае если разницы между годами нет, и возвращает 1, если разница есть.

Оператор return просто возвращает любое поставленное значение.

Заметьте, что я возвращаю в одном месте 0, а в других true, это просто для демонстрации, что можно возвращать любые значения и подстраиваться под них.

К тому же 0, если вы помните, может значить и false, а 1 может значить true.

Исходя из этого, можно сказать, что разницы то и нет, в том, что я передал 0 или false.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]