Пятница, 19.04.2024, 01:26
wireBuild | Server
Приветствую Вас Гость | RSS
Главная | I.Введение в Expression 2 (E2) - Синтаксис - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: uXeGen  
Форум » Garry's Mod » Обучение » I.Введение в Expression 2 (E2) - Синтаксис
I.Введение в Expression 2 (E2) - Синтаксис
uXeGenДата: Среда, 06.05.2009, 19:25 | Сообщение # 1
Администратор
Группа: Администраторы
Сообщений: 83
Репутация: 2
Статус: Offline
Синтаксис

Синтаксис Expression 2 весьма изменился со времен прошлого Expression Chip, придется изучить немного больше команд, но это сделает ваши постройки намного более функциональными. Помните что как правило существует несколько способов написания кода, и задача может быть решена несколькими путями.

1.Условия.
Условие очень важная вещь которая очень часто используется.

Code
if (A) {B = 1} else {B = 0}

Что это такое? Объясняю! if в переводе с англ. языка - если. Else - иначе.
Получается: Если А - истина (A = 1), то В = 1, иначе, В = 0
Также можно писать так:
Code
if (A)
{
B = 1
}
else
{
B = 0
}

Вторая запись как видите длинее, но она помогает в том случае, если у вас длиная операция.

Знаки:
== - логическое равно, if (A == 1) - Если А равно 1, то выполнить сценарий. (если у вас только 1 или 0, то можно заменять (A == 1) на (A) )
!= - не равно, if (A != 0) - Если А не равно нулю, то выполнить сценарий.
& - и, if (A & B != 0) - получается - Если А истина и В не равно нулю, то выполнить сценарий.
| - или, if (A | cool - если А или В, то выполнить сценарий.
~ - значение изменено, if (~A) - если значение А изменилось, то выполнить сценарий.

2.Выражение @trigger.

Выражение @trigger может выборочно разрешать и запрещать входам вызывать выполнение кода. Возможные значения: all/none, или список разрешенных входов
@trigger all # всё по старому, изменение значения на входах всегда вызывает выполнение кода
@trigger none # изменение значения на входах никогда не вызывает выполнение кода, его вызывает только таймер, и.т.п. функции
@trigger Time Button # выполнение кода вызывается только при изменении значений на входах Time и Button
Отличия от Expression Gate

Документация по Expression Gate 1 в основном подходит для Expression 2, самая главная разница между языками - конструкции if, которые вы могли увидеть выше. Исключая это, Expression 2 лучше во всех отношениях, а базовые основы кодинга такие же. В E2 также имеется хороший редактор кода с подсветкой синтаксиса!

Сначала кода всегда идут строки с переменными, что похоже на Expression 1(хотя не то же самое) Переменные в expression должны быть объявлены до того как вы будете их использовать, так что раньше это выглядело подобным образом:

Code
N@variable example
I@A B
O@C
D = A + B
D >= 4 & A -> C = 1;
D < 4 -> C = 0;

а теперь:

Code
@name variable example
@inputs A B
@outputs C
@persist D
D = A + B
if(D >= 4 & A) { C = 1 }
else { C = 0 }

Обратите внимание на линию @persist - здесь задаются переменные которые не должны фигурировать ни на входе ни на выходе. Причина подобной конструкции проста - в Expression 2 поддерживается много типов переменных. В Expression 1 это только номера и пакеты, а в Expression 2 поддерживается большое количество типов переменных, таких как strings(строковые переменные), vectors(векторы), и еще некоторые типы, и задание этих переменных в линию @persist заставляет компилятор отлавливать ошибки а не игнорировать их.
Новые возможности

Code
@name vector example
@inputs A:vector
@outputs B:vector
C = vec(0,0,0)
if(A>C) {
B = A:normalized() * 4
} else {
B = C + A
}

Производительность

Были проведены некоторые тесты в игре:

~3.000.000/сек арифметических операций (+-*/) на числах, 2000 операций, 200 выполнений за 0.13сек

~850.000/сек арифметических операций (+-*/) на векторах, 2000 операций, 100 выполнений за 0.23сек
Горячие Клавиши Редактора

Ctrl-Пробел Проверить (и переместить курсор на ошибку)
Ctrl-S Сохранить
Ctrl-Z Отменить
Ctrl-Y Вернуть
Ctrl-X Вырезать
Ctrl-C Копировать
Ctrl-V Вставить
Ctrl-A Выделить Всё
Ctrl-Up Прокрутить Вверх
Ctrl-Down Прокрутить Вниз
Ctrl-Left Прокрутить Влево
Ctrl-Right Прокрутить Вправо

3.Комментарии.
Комментарии - это текст, который не обрабатывается программой. В каждом языке программирование есть свой вид записи комментариев.
Например - Lua:

Code
--Это комментарий.

Ну, а как же его записать в Е2? Вот так:
Code
#Это комментарий.

Для чего это нужно? Допустим у вас очень сложный код и очень много переменных, в которых очень легко запутаться. Так вот, вы пишите комментарий как-бы ссылаясь на него.

Это базовые знание Е2, без них вы не сможете пройти дальнейшее обучение.

 
Форум » Garry's Mod » Обучение » I.Введение в Expression 2 (E2) - Синтаксис
  • Страница 1 из 1
  • 1
Поиск:

Copyright wireBuild © 2024 Сайт управляется системой uCoz