Russian Qt Forum
Апрель 29, 2024, 01:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Арена для ботов  (Прочитано 10523 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #15 : Июль 09, 2013, 18:02 »

Набросал основной функционал ядра. Времени уделять много не получается, но по чуть-чуть делаю.

Как это видит пользователь библиотеки:
Код
C++ (Qt)
int main( int argc, char *argv[] )
{
       QApplication app( argc, argv );
 
       core::ScriptEngine eng;    // Скриптовый движек
 
       core::BotScheduler sh;    // Шедулер ботов
       qDebug() << "Install botscheduler api to scriptengine.";
       sh.installTo( eng );    // Инсталлирует в скриптовое пространство свой api (appendBot/removeBot)
 
       arena::Model mod;    // Арена
       qDebug() << "Install model api to scriptengine.";
       mod.installTo( eng );    // Инсталлирует в скриптовое пространство свой api (пока арену не делал)
 
       // Загружаем файл с ботом и выполняем его в скриптовом пространстве
       // Объекты ботов добавляют себя в шедулер через его api
       qDebug() << "Load bot-code.";
       if( !eng.executeFile( "bot.js" ) )
       {
               qWarning() << "Error execution script bot.js.";
               return 1;
       }
 
       qDebug() << "Running...";
       core::LineTimeGenerator gen( 500 );    // Создаем линейгый генератор времени с тиком каждые 0,5 сек
       QObject::connect( &gen, SIGNAL( cycle() ), &sh, SLOT( process() ) );    // Связываем генератор и шедулер
       gen.start();    // Запускаем генератор
 
       return app.exec();
}
 

Шаблон бота:
Код
Java
bot = function( _id )
{
       var id = _id;
       this.tick = function()
       {
               print( "tick" + id );
       }
}
 
var o1 = new bot( 10 );    //Создаем два объекта бота
var o2 = new bot( 20 );
 
BotScheduler.appendBot( "bot1", o1.tick )    // Регистрируем их в шедулере, указывая уникальное имя и точку входа.
BotScheduler.appendBot( "bot2", o2.tick )
 

Сейчас займусь ареной для ботов на карте и основой для карт.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.148 секунд. Запросов: 22.