00017. Условия в Sanny Builder (Часть 1)
Last updated
Last updated
Условия в Sanny Builder (Часть 1)|Наконец мы дошли до условий! Весь скриптинг, как и большинство языков программирования, состоит из сплошных условий.|wmysterio|wmysterio||||Что же такое условие? Условие — это проверка на правдивость или ложь какого либо действия или события в игре. То есть скрипт будет продолжаться только тогда, когда будет выполнены ( или не выполнены ) условия.
Что бы написать условие особых знаний не нужно. Для этого нужно написать слово if. После этого написать условие которое мы хотим проверить на правдивость или ложь. Давайте напишем небольшой пример:
В нашем примере мы проверяем на правдивость ( далее - истину ). То есть проверяем: равна ли переменная "$DIMA" числу 1. Если переменная будет равна, то мы продолжаем движение по скрипту, иначе делаем прыжок на какую-то метку ( в нашем случаи мы прыгаем на метку ":METKA_1", так, как ранее мы задали ей значение 0 ). И так пока переменная каким-то образом не станет единицей мы будем прыгать так по кругу. Давайте графически представим наш скрипт:
В нашем случаи:
IF - указываем компилятору, что сейчас будет проверка $DIMA == 1 - это и есть сама проверка. На этом месте всегда пишется условный опкод JF @METKA_1 - указываем куда будет прыгать шарик, если условие НЕ выполнилось.× **ВАЖНО:** знаки **=** и **==** не одно и тоже! **==** является проверкой! Так же проверками будут знаки: **<=** и **>=** ( меньше равно, больше равно ).
Наш пример скрипта проверяет на правдивость. Что бы была проверка на ложь, нужно перед проверкой написать слово not. Вот пример скрипта:
То есть фактически мы можем сказать о проверка: переменная "$DIMA" не равна "1"? Можно сказать что мы спрашиваем в игры :) Рассмотрим графический вариант:
Принцип работы скрипта остаётся такой же, как и предыдущий вариант. Нас интересует проверка с "not". Мы проверяем переменную, то есть спрашиваем: "Переменная $DIMA не равна 1?". Так как в нашей переменной ранее был записан ноль, то условие срабатывает, потому что 0 не равен 1 в текущий момент. Скрипт идёт дальше ( не прыгает на метку, как в предыдущем варианте ) и в конце-концов доходит до завершение потока.
× **Примечание:** На самом деле условие выполняет проверки всегда на истину. Поэтому и есть вариации проверок ( с not или без ).
Очень часто приходится проверять на выполнение сразу нескольких условий. Для этого нужно после слова "if" дописать слово "and", то есть в нас должно получится: if and. После этого нужно написать несколько условных опкодов. Здесь есть ограничение: нельзя написать больше 9-и условий, иначе компилятор нам сообщит: "Неверное число условий. Максимум 9.":
Давайте напишем пример скрипта, где используются несколько условий:
В нашем случаи есть две переменных. А проверяем мы:
Равна ли переменная $DIMA числу 0;
Равна ли переменная $WASYA числу 1;
Другими словами, если ВСЕ проверки будут истинными, то поток завершится.
Если оба условия выполняются мы продолжаем скрипт до его конца. Если мы напишем возле "$DIMA" слово "not", то условия не будут выполнятся и мы будем постоянно прыгать на назначенную метку до тех пор, пока каким то образом в переменной "$DIMA" не будет 0.
Так же в скриптинге существует условие if or. То есть если хотя бы одно условие будет выполнено. Возьмем для примера тот же скрипт, только немного его изменим:
В нашем случаи обе переменных равны единице. Мы можем спросить: "Переменная $DIMA равна 1 ИЛИ переменная $WASYA равна 1?" В нашем примере выполняется 1-но условие, поэтому дальше будет завершен поток. Если все условие не выполнялись бы, то мы сделали прыжок на метку ":METKA_1". И так до тех пор, пока хотя бы одно условие не будет выполнено.
Расскажу ещё несколько слов о команде jf. Она используется всегда после всех условных опкодов, использующийся в условиях "if", и выполняет переход в случае истинности всех переданных проверок.|3972|1|0|18698668png
910281
400123``\|40510976
png522
273400
209\|90941240`png`443`131`400`118
||uslovija_i_klassy_v_sanny_builder_chast_1|1498498758