|
|
|
Вопрос по отрисовке в canvas
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Решил заняться обучением фишками html5, появился вопрос по canvas, решение нагуглиить не смог. Вопрос в чем: допустим у меня есть игровое поле с разными цветами (например, шахматная доска, или там, полосатое поле). Есть фигура, скажем круг.Если я захочу перемещать круг по этому полю, то мне придется же сначала очистить его и нарисовать с другими x и y. НО!!! Поле, на рисованое мной тогда заирается. То есть на шахматной доске на черном поле стоит фигура, при перемещение на черном поле остается эта "очищенная зона". и вообще если зацепит, то остается след.... Я не пойму или наверно не знаю приема, как не затирать уже нарисованные элементы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 10:05 |
|
||
|
Вопрос по отрисовке в canvas
|
|||
|---|---|---|---|
|
#18+
С канвасами не игрался, но напрашивается идея рисовать поле на одном слое, фигуры - на другом. Тогда можно будет не перерисовывать их, а двигать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 14:32 |
|
||
|
Вопрос по отрисовке в canvas
|
|||
|---|---|---|---|
|
#18+
Вам либо нужна послойная организация канвасов -- на одном рисуем фигуры, на другом поле, или же вообще каждую фигуру в отдельный канвас в абсолютно позиционированном div, а там уж двигаем div. Либо же проникайтесь и образовывайтесь на тему рисования по маске, быстрым затираниями-перерисовкам нужной области, и пр. Это темы не конкретно канваса, но двухмерной графики в общем. А применительно к канвасу нужно всего лишь знать про globalCompositeOperation, которая собственно и делает рисование по маске. Первый способ в подавляющем большинстве случаев вам и нужен. Почему не "всегда" -- так это потому, что канвасы жрут память, и комплексная послойная организация множества канвасов (особенно больших канвасов) будет жрать ресурсы системы с невероятной скоростью. Второй способ значительно сложнее в освоении, но если всё правильно сделать -- будет очень даже быстрый и жрущий значительно меньше ресурсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2014, 20:27 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38803058&tid=1446543]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
61ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 318ms |

| 0 / 0 |
