Консоль

Материал из NeoAxis Wikipedia.

Перейти к: навигация, поиск

[править] EngineConsole в деталях...

Чтобы открыть игровую консоль в игре нужно нажать клавишу тильда "~".

В консоли можно прописывать различные команды (как во многих играх), чтобы получить список доступных команд достаточно ввести команду "commands" без ковычек.

С помощью класса Engine.EngineConsole можно просто вывести текст в консоль:

 EngineConsole.Instance.Print( "Hello Console!" );

Даже цветной:

 EngineConsole.Instance.Print( "Hello Console!", new ColorValue( 1.0f, 0.0f, 0.0f ) );

Также можно добавить свою команду для консоли:

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

"my_command" - имя команды (первый аргумент) my_command - имя функции обработчика (второй аргумент)

Для обработки команды нам понадобится функция которая ничего не возвращает и берет 1 аргумент типа string:

 void my_command( string arguments )
 {
 }

Но если мы хотим передавать вместе с нашей командой один или несколько аргументов! Их надо вытащить из строки arguments. Если аргумент один:

 void my_command( string arguments )
 {
    int arg;
    if( !int.TryParse( arguments, out arg ) )
    {
       return; //Ошибка - неправильный аргумент
    }
    делаем какието действия с нашим аргументом...
 }

Ну а если аргументов несколько:

 void my_command( string arguments )
 {
    char[] splitter = new char[ 1 ] { ' ' };
    string[] buf = arguments.Split( splitter );
 
    int arg1, arg2;
    if( !int.TryParse( buf[ 0 ], out arg1 ) || !int.TryParse( buf[ 1 ], out arg2 ) )
    {
       return; //Ошибка - неправильные аргументы
    }
    //делаем какието действия с нашими аргументами...
 }

splitter - символ которым отделяются аргументы, в данном примере пробел buf - массив строк, где каждая строка наш аргумент (как в случае с 1 аргументом) Я привел пример с 2 аргументами, но их может быть и больше!

Теперь нашу команду можно использовать в игре, а можно и програмно вызывать консольную команду:

 EngineConsole.Instance.ExecuteString( "my_command" );

Здесь я описал самые необходимые функции для работы с консолью :рисунок:

Автор GRANT

Личные инструменты