В проблемной области разработки игр на холсте HTML5 в Phaser.io
особенно трудно избежать проблемы жесткого кодирования «магических чисел». Вот несколько конкретных примеров, которые, кажется, появляются постоянно:
Атрибуты спрайтов, такие как
size
,position
и т. д. Жесткое кодирование этих значений вызовет проблемы на окнах просмотра с неожиданным размером, ориентацией или плотностью пикселей.Атрибуты физического тела, такие как
velocity
,force
, количество частиц и т. д. Жесткое кодирование этих значений вызовет проблемы на устройствах с недостаточным питанием, если частота кадров упадет ниже 60 кадров в секунду.Значения времени, например. для объектов
Timer
иTween
. Как и выше, жестко заданные значения вызовут неожиданное поведение на устройствах с недостаточным питанием, поскольку миллисекунда игрового времени больше не будет равняться миллисекунде реального времени.
Я понимаю, что решение этих проблем, как правило, зависит от рассматриваемой игры, но они кажутся настолько универсальными и широко распространенными, что должны быть некоторые общие рекомендации, основанные на здравом смысле, чтобы их избежать. Специально для разработки игр в Phaser.io