Главная » Статьи » Amx Mod X Скриптинг |
Авторы: joaquimandrade, Exolent[jNr] Перевод и редактирование: DJ_WEST Часть 1. Числа, множества чисел. Для сохранения чисел нам необходимо место, называемое "переменной". Ее создание происходит следующим путем:
new - означает, что мы создали переменную. numberHolder - это название (метка) переменной, необходимое для дальнейщего к ней обращения. Это называется "объявление переменной". Чтобы сохранить число в нашей переменной, мы делаем:
Где 5 - это наше число, к примеру. Для сохранения множества чисел нам необходимо место, называемое "массивом". Его создание происходит следующим путем:
Где x количество чисел, которые мы сможем хранить в массиве (его размер). Этот массив будет иметь x позиций. Одно для каждого числа. Чтобы обратиться к позиции, мы делаем:
Где 0 - это наша позиция, к примеру. Последняя позиция будет x-1. Следовательно, для хранения цвета нам необходимо сделать:
Или:
Или:
Все эти способы имеют одинаковый эффект и означают одно и тоже. Наиболее предпочтительными способами являются второй и третий, третий удобно использовать при объявлении "глобальной" переменной. Глобальная переменная - это переменная, которая создается один раз и хранится в памяти на протяжении всего периода действия плагина, и к которой можно обращаться из любой функции. Pawn позволяет делать арифметические операции, поэтому мы можем сделать нашу переменную с данными о цвете немного темнее:
Если нам нужно изменить цвет не только у одной переменной, то не обязательно выполнять арифметические действия для каждой из них. Для этого мы создадим "функцию":
Это называется "объявлении функции darkenColor". darkenColor - это название функции (метка), которое мы будем потом использовать при обращении к ней. anyColor - это название переменной, которое мы передаем функции для дальнейщего ее использования. Между скобками функции находится ее аргумент (anyColor[3]). Между { } находится тело функции, набор действий, которые необходимо выполнить. К примеру, для изменения цвета нескольких переменных, мы делаем:
Это называется "вызов функции darkenColor". Перед тем, как ее вызывать, функция должна быть объявлена. В результате выполнения данного кода, мы получим следующие результаты: someColor будет хранить значения 90,90,90. otherColor будет хранить значения 40,90,140. anotherColor будет хранить значения 245,20,223. Но у нашей функции есть проблема. Если одно из значений переменной, которое мы передаем нашей, будем меньше 10, то мы получим отрицательный результат, что неверно, потому что значение цвета должно быть в пределах от 0 до 255. Поэтому нам требуется создать "условие":
Между скобками после выражения if мы имеем условие (anyColor[0] < 0). Между { } мы имеем тело условия, которое будет выполняться в том случае, если условие верно. То есть anyColor[0] = 0, когда anyColor[0] < 0. Наша функция немного не практична. Мы не можем сказать ей (функции) насколько хотим изменить яркость цвета. Поэтому переделаем ее так:
Теперь передавая функции changeColorLuminosity еще один аргумент, который называется factor, мы можем более практично менять яркость цвета. Передавая положительный factor мы делаем цвет ярче, передавая отрицательный factor - темнее. Но теперь у нас есть проблема, что значение может превысить число 255, поэтому решаем проблему:
Наша функция будет работать, но ее можно улучшить, потому что нам не нужно проверять больше ли число 255, когда оно меньше 0:
Данный участок кода:
Можно прочитать так: если значение переменной anyColor меньше нуля, то оно равняется нулю, иначе если значение больше 255, то оно равняется 255. | |
Просмотров: 938 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |