Многопоточность ИЛИ многократный поток управления в Pacman - PullRequest
3 голосов
/ 07 апреля 2011

Я планирую написать игру Pacman на языке Си, с нуля.Самая основная проблема, с которой я сталкиваюсь, заключается в том, как поддерживать несколько потоков управления одновременно.Я имею в виду, как движется Пакман, призраки движутся, счет обновляется - и все это одновременно.В целом это очень распространено для всех игр.Здесь задействованы какие-либо потоки?Если да, то кто-нибудь может рассказать о том, как заставить вашу программу делать много вещей одновременно (будет полезно, если вы расскажете о языке Си).

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 07 апреля 2011

Одним из фундаментальных принципов разработки игр в реальном времени является игровой тик .Это представляет собой небольшую единицу времени, в течение которой все происходит. Таким образом, у вас может быть тик каждые 0.100 секунд.Чем меньше отметка, тем более тонкий контроль у вас есть.

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

1 голос
/ 07 апреля 2011

Я думаю, что маловероятно, что оригинальная версия Pac-Man была многопоточной в том смысле, в каком мы используем этот термин сегодня.Скорее всего, это было реализовано в виде простого цикла с некоторой поддержкой прерываний.Вы можете сделать то же самое для реализации элементарной многопоточности - напишите вашу программу в цикле while (1) или for (;;) и установите таймер для регулярного прерывания цикла для обновления экрана.

...