Ну загрузка проца полная, т.к. двиг входит в мертвую петлю while чтобы постоянно обрабатывать вывод графики, под оффтопиком по другому никак сделать нельзя вроде(чтоб не потерять фпс), да и в Linux другого выхода тож пока не нашёл.
Как я вижу ситуацию.
1) На самом деле фактическое кол-во прорисовок/обновления графического отображения игры будет равно частоте обновления экрана... даже если ты не привязываешься к v-synh, все равно - забивается буфер хоть 7000 раз (т.е. ты делаешь 7000 выводов на прорисовку), сольется этот буфер на экран только "значение обновления экрана" раз.
2) У тебя 2д игра, _не 3д_, т.е. положение объектов фактически целочисленное (ширина и высота экрана дробными быть не могут, я думаю это понятно), в тоже время скорость объектов относительно низкая (у меня было что-то там 700фпс, не думаю что у тебя что-то движется со скоростью 700 пикселей в секунду).
Что получаем - при 60 фпс у тебя просчет положения снаряда скорость которого 20 пикселей в секунду (к примеру) соотв. вычисляется 60 раз, т.е. с учетом округления к целочисленным фактическим координатам снаряда на экране, компьютер будет делать работу в 3 раза большую чем требуется (после округления в целочисленные значения положения, снаряд будет иметь те же координаты что и до того).
Вывод: не морочь себе голову, просчитай сколько тебе реально надо просчетов в секунду (исходя из размера экрана и максимальной скорости у объекта) - это и будет твой необходимый фпс, и уже на базе этого фпс сделай учет времени последнего цикла (т.е. чтобы цикл просчетов+прорисовка проходил не чаще чем нужно), в остальное время - отпускаешь процессор (делаешь sleep/delay/wait на 1 милисекунду, или как-то по другому - тебе решать).
В итоге у тебя будет, допустим "оптимальные" 80 циклов в секунду (заметь, мы не привязываемся к частоте обновления экрана!!! т.к. нам нужно корректно считать математику, мы формируем бэк буфер 80 раз, а когда системы его прорисует - не наша забота) + менеджер приоритетов потоков ОСи будет нормально работать
, в случае если игра на компьютере работает медленней чем 80 циклов в 1 секунду, она будет работать в том же режиме что у тебя сейчас (т.е. будет постоянно обрабатываться цикл "просчет+прорисовка").
Ну, все конечно мое имхо, так что прошу не принимать близко к серцу...