Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вопрос по отрисовке в canvas (https://javascript.ru/forum/dom-window/51594-vopros-po-otrisovke-v-canvas.html)

uuushka 12.11.2014 08:32

Вопрос по отрисовке в canvas
 
Здравствуйте!
Решил заняться обучением фишками html5, появился вопрос по canvas, решение нагуглиить не смог.
Вопрос в чем: допустим у меня есть игровое поле с разными цветами (например, шахматная доска, или там, полосатое поле). Есть фигура, скажем круг.Если я захочу перемещать круг по этому полю, то мне придется же сначала очистить его и нарисовать с другими x и y. НО!!! Поле, на
рисованое мной тогда заирается. То есть на шахматной доске на черном поле стоит фигура, при перемещение на черном поле остается эта "очищенная зона". и вообще если зацепит, то остается след.... Я не пойму или наверно не знаю приема, как не затирать уже нарисованные элементы

Safort 12.11.2014 13:03

До перемещения круга тебе нужно очистить всю страницу, потом нарисовать игровое поле и только потом сам круг. И так на каждый кадр анимации.

Aetae 12.11.2014 13:14

Safort, о_О наркоман штоле?
uuushka, использовать два и более канвасов, один снизу с полем, второй сверху с фигурами. Также можно хранить состояния канваса.

krasovsky 12.11.2014 13:54

Цитата:

Сообщение от Aetae
использовать два и более канвасов, один снизу с полем, второй сверху с фигурами. Также можно хранить состояния канваса.

Ага, для одного поля и пары фигурок сойдет.
А для сложных вещей вместо того чтоб писят канвасов один под другим втыкать ка бы так и делают, как Safort написал. Точнее на себя функцию перерисовки берут либы которые предоставляют объектную модель канвсу.

Aetae 12.11.2014 14:25

krasovsky, всё равно не всё поле перерисовывают, а только куски в которых что-либо изменилось. Это уже отдельные движки со сложной логикой, а вопрос был по работе с нативным канвасом.

MallSerg 12.11.2014 16:10

подходы к рисованию бывают разные =)
и у каждого подхода есть недостатки и достоинства =)
подходы разные нужны !
подходы разные важны !

Статья на данную тему

Safort 12.11.2014 18:30

Aetae,
Цитата:

Safort, о_О наркоман штоле?
товарищ майор, а зачем вы интересуетесь?)

По моему кое-кто заморачивается)
Вопрос был довольно ясный, я дал ответ, а всё остальное это всякие разные оптимизации и прочие плюхи, которые пока что автору не нужны. Будут нужны - спросит или найдёт в сети инфу.

Aetae 12.11.2014 21:37

Перерисовывать всю канву каждый кадр - антипатерн. Такому никого учить не след.

Safort 13.11.2014 00:52

Да, но вот только я не видел, чтобы говорили, об этой перерисовке, как об антипаттерне.


Часовой пояс GMT +3, время: 14:50.