Документация/Статьи по программированию/Консоль движка

From NeoAxis Engine Wiki

Jump to: navigation, search
Перейти на уровень выше
Консоль движка

Contents

Введение

Консоль движка NeoAxis Engine - это удобное и простое средство для вывода отладочной информации, а также ввода команд. Консоль удобно использовать как вспомогательное средство при разработке вашего приложения.

Чтобы вызвать консоль, нужно нажать клавишу ~. Повторное нажатие той же клавиши скрывает консоль.

Список команд консоли можно получить введя команду commands.

Использование консоли в вашем приложении

Код и API консоли определены в классе EngineConsole, располагающийся в GameCommon.dll. Сейчас мы познакомимся с методами этого класса.

Вывод в консоль

Консоль позволяет выводить строковые значения. Для этого используется метод Print.

EngineConsole.Instance.Print( "Hello Console!" );
Вывод строки в консоль

Кроме того можно выделять текст цветом. В таком случае, после строки, методу Print передается еще и цвет.

EngineConsole.Instance.Print( "Hello Console!", new ColorValue( 1, 0, 0 ) );
Выделение текста цветом

Добавление новых команд

Помимо стандартных команд в консоли, вы можете использовать собственные команды. Чтобы добавить команду, в классе EngineConsole имеется метод AddCommand. При добавлении команды нужно указать ее имя, а также метод, вызываемый при исполнении команды.

EngineConsole.Instance.AddCommand("my_command", MyCommand);

Метод, реализующий вашу команду, должен получать на вход единственный параметр - строку аргументов. В этой строке будет содержаться символы, следующие в строке после имени команды. Т.е. полностью команда в консоли имеет вид: имя_команды аргументы.

В примере ниже мы напишем метод для команды, выводящий в консоль сумму двух аргументов, разделенных пробелом.

public void MyCommand(string arguments)
{
    //Преобразуем строку аргументов в массив строк
    char[] splitter = new char[1] {' '};
    string[] argumentsArray = arguments.Split(splitter);
 
    //Проверяем количество аргументов
    if (argumentsArray.Length < 2)
        return;
 
    //Пробуем преобразовать строки в числа
    int arg1, arg2;
    if (!int.TryParse(argumentsArray[0], out arg1) || !int.TryParse(argumentsArray[1], out arg2))
        return;
 
    //Выводим результат в консоль
    EngineConsole.Instance.Print((arg1 + arg2).ToString());
}

Скомпилируем и запустим проект. Введя команду: "my_command 2 2", мы получим результат - 4.

Использование собственной команды

Вызов команды из кода

Также, команду консоли можно вызвать непосредственно из приложения. Для этого используется метод ExecuteString, заменяющий ввод команды пользователем.

EngineConsole.Instance.ExecuteString( "my_command" );