Я использую библиотеку boostJS с несколькими объектами bitmapSequence на моем холсте. Я могу задать неправильный вопрос, потому что я не понимаю, как это работает. Постараюсь максимально понятно объяснить свою ситуацию.
Я помещаю несколько объектов bitmapSequence (последовательности анимации спрайтов) на холст и перемещаю их внутри глобальной функции tick(), устанавливая свойства x и y. Как только я установил их свойства x и y, я вызываю stage.update(), который повторно отображает холст и все объекты bitmapSequence с их новыми местоположениями.
После вызова stage.update(), но все еще внутри функции tick(), я присваиваю переменной ctx значение canvas.getContext('2d'). Затем я вызываю ctx.fillRect(0, 0, 8, 8). В этом случае аргументы 0,0 (x, y) для fillRect ВСЕГДА представляют исходную точку для самого последнего объекта bitmapSequence, атрибуты x и y которого я изменил до вызова stage.update().
Это означает, что если я нарисую прямоугольник в точке 0,0, он будет отображаться в начале координат самого последнего объекта bitmapSequence, который я использовал, и будет следовать за bitmapSequence при его перемещении).
Если я попытаюсь получить 2D-контекст и нарисовать прямоугольник до stage.update(), он не появится на холсте.
В идеале я хотел бы иметь возможность рисовать прямоугольники относительно источника любого объекта bitmapSequence, который я хочу. Пожалуйста, помогите мне понять, что я неправильно понимаю.