Очевидно, что вы не всегда можете делать это действительно равномерно, если количество пропускаемых кадров не является делителем общего количества кадров. Поэтому, если важно всегда пропускать как минимум желаемого количества кадров, выполните разделение по полу (totalFrames / framesToSkip).
Сказав это, вы можете применить тот же трюк, который вы предложили.
if (totalFrames % floor(totalFrames/framesToSkip) == 0)
skip();
Обратите внимание, что в случае 44 и 15 вы пропускаете намного больше 15. Другой возможностью является потолок вместо пола, в этом случае вы не пропустите 15 кадров, но 14 кадров.
Еще одним решением является округление до ближайшего целого числа, это лучшее приближение, однако вы иногда пропускаете больше, чем хотели, а иногда меньше, чем хотели, но в среднем у вас были лучшие результаты