Этот урок рассказывает что такое области видимости и как они влияют на нашу программу
Подстатья
5 101
38
avuremybe, получается, тут тупо глобалки одни (хотя в самом движке это не глобалки), и даже никаких неймспейсов?
24
ScorpioT1000, а ничего там с классами :D
Пока я не распишу здесь основы, влезать в ковыряние движка не буду.
В двух словах - движок почти полностью на С++. Функция main() и все классы находятся внутри него.
Также в нём есть блок, который обрабатывает эти, так называемые, скрипты.
Выглядит это примерно так: он берёт файл скрипта и ищет там знакомые ключевые слова. Далее по своему внутреннему "словарю" вызывает нужные функции.
Поэтому функционал сильно ограничен, а некоторые, вполне базовые вещи, реализованы через костыли или вообще не реализованы.
Но это всё равно на две головы выше того, что дали нам близзарды в джассе, просто нужно в этом разобраться (чем я сейчас и занимаюсь).
В скриптовой части вместо реальных объектов класса используются текстовые структуры данных.
О них статья будет позже.
38
А что с классами там?
Потому что обычно программа начинается со своего класса Application, который инстанцируется в main и имеет в себе другие сущности и дальше поехал его конструктор и методы, которые инстанцируют остальное и так далее
Конвертер локаторов генерирует код локаторов модели для Maya, сохраняя их исходные имена и координаты.
Программа
1 72
24
Забыл прикрепить саму утилиту 🤣
Исправил
На этом уроке мы детально рассмотрим циклы, их конструкцию, особенности и использование.
Подстатья
7 109
24
Статья обновлена и дополнена:
  • добавлен раздел с операторами break и continue
  • описаны нюансы работы инкремента (спасибо ScorpioT1000)
38
avuremybe, адочек) но хороший материал для статьи
24
ScorpioT1000, дополнительные тесты показали, что преинкремент и предекремент вообще не работают:
УНО
int i = 4;
int a;

a = ++i;    // a == 1
int i = 4;
int a;

a = i++;    // a == 5
int i = 4;
int a;

a = --i;    // a == -1
int i = 4;
int a;

a = i--;    // a == 3
ДОС
int i = -4;
int a;

a = ++i;    // a == 1
int i = -4;
int a;

a = i++;    // a == -3
int i = -4;
int a;

a = --i;    // a == -1
int i = -4;
int a;

a = i--;    // a == -5
24
ScorpioT1000, знаешь, я решил проверить как это работает в корсарах.
ОСТОРОЖНО, ШОК-КОНТЕНТ
Открыть
int i = 1;
int a;

a = ++i;    // a == 1
int i = 1;
int a;

a = i++;    // a == 2
int i = 1;
int a;

a = --i;    // a == -1
int i = 1;
int a;

a = i--;    // a == 0
int i = 1;
int a;

a = i++ + ++i;  // а на этом выполнение функции прекращается
проведу ещё немного тестов и, видимо, пойду дополнять статью
В этом уроке мы рассмотрим доступные в скриптах типы данных и как с ними работать.
Подстатья
20 218
24
ScorpioT1000, не, это не со стандартной библиотеки. Это проприетарные технологии))
Классов сюда не завезли, вместо них дали текстовые структуры данных.
ref это ссылка на саму структуру, чтобы обращаться к ней не как к массиву, а по названию, с доступом к атрибутам через привычную точку.
Крч это для имитации обращения к экземпляру класса.
aref этоа налогичного плана ссылка - сокращённое обращение к атрибуту любой вложенности. Необходимости в этом нету, просто для удобства работы.
Я где-нибудь опишу работу со всем этим. Правда пока не решил где именно это будет наиболее уместно.
38
avuremybe, про ref/aref, перепутал. Я помню из крестов как раз только всякие ptr из стандартных библиотек. А это std::ref?