Вопрос по отрисовке в canvas
Здравствуйте!
Решил заняться обучением фишками html5, появился вопрос по canvas, решение нагуглиить не смог. Вопрос в чем: допустим у меня есть игровое поле с разными цветами (например, шахматная доска, или там, полосатое поле). Есть фигура, скажем круг.Если я захочу перемещать круг по этому полю, то мне придется же сначала очистить его и нарисовать с другими x и y. НО!!! Поле, на рисованое мной тогда заирается. То есть на шахматной доске на черном поле стоит фигура, при перемещение на черном поле остается эта "очищенная зона". и вообще если зацепит, то остается след.... Я не пойму или наверно не знаю приема, как не затирать уже нарисованные элементы |
До перемещения круга тебе нужно очистить всю страницу, потом нарисовать игровое поле и только потом сам круг. И так на каждый кадр анимации.
|
Safort, о_О наркоман штоле?
uuushka, использовать два и более канвасов, один снизу с полем, второй сверху с фигурами. Также можно хранить состояния канваса. |
Цитата:
А для сложных вещей вместо того чтоб писят канвасов один под другим втыкать ка бы так и делают, как Safort написал. Точнее на себя функцию перерисовки берут либы которые предоставляют объектную модель канвсу. |
krasovsky, всё равно не всё поле перерисовывают, а только куски в которых что-либо изменилось. Это уже отдельные движки со сложной логикой, а вопрос был по работе с нативным канвасом.
|
подходы к рисованию бывают разные =)
и у каждого подхода есть недостатки и достоинства =) подходы разные нужны ! подходы разные важны ! Статья на данную тему |
Aetae,
Цитата:
По моему кое-кто заморачивается) Вопрос был довольно ясный, я дал ответ, а всё остальное это всякие разные оптимизации и прочие плюхи, которые пока что автору не нужны. Будут нужны - спросит или найдёт в сети инфу. |
Перерисовывать всю канву каждый кадр - антипатерн. Такому никого учить не след.
|
Да, но вот только я не видел, чтобы говорили, об этой перерисовке, как об антипаттерне.
|
Часовой пояс GMT +3, время: 14:50. |