Шаблон проектирования контроллера / мини-ядра в C ++ - PullRequest
0 голосов
/ 19 сентября 2009

Я искал простой проектный объект в C ++ для работы, я понимаю большую часть кода, но я довольно плохо знаком с языком, поэтому «база» для работы поможет.

Концепция - это в основном класс 'task' как основа для заданий, выполняемых в цикле.

Класс BaseTask> Класс AudioTask

Цикл контроллера> сохраняет стандартный список указателей на выполняемые задачи

while (false) {перебрать список и запустить каждый указатель, а затем начать заново}

Дополнительные задачи могут быть вставлены в список, добавляя его в цикл по мере необходимости, обеспечивая основу для практически всего, что должно быть выполнено в каждом кадре игры. Позже я надеюсь перейти на многопоточность и т. Д., А сейчас я просто хочу что-то простое.

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

Ответы [ 3 ]

1 голос
/ 19 сентября 2009

A пул потоков будет соответствовать шаблону.

Это налагает дополнительные ограничения на то, что задания, вставленные в пул потоков (как функторы), должны быть независимыми и поточно-ориентированными, но обрабатывает все задания параллельно в порядке поступления. (Я на самом деле использую эту идею в качестве основы для собственного проекта.)

Хотя работа с потоками, вероятно, не самая лучшая вещь, когда вы уже изучаете такой сложный язык, как C ++, это все же полезная идея для изучения.

0 голосов
/ 19 сентября 2009

Вам, вероятно, будет хорошо со специализированными потоками, связывающимися между собой. Существует легкая библиотека, которая облегчает обмен сообщениями между потоками ( LITM ) с документацией .

0 голосов
/ 19 сентября 2009

Прочитайте здесь для программирования игр 101 часть 1 и часть 2 .
Из твоего вопроса кажется, что ты ищешь темы и игровой цикл.
Начните с однопоточного приложения, а затем перейдите к многопоточности, поскольку C ++ - это язык, который очень трудно выучить и еще сложнее освоить.

...