очистка canvas
Здравствуйте!
Стало интересно когда какую очистку выгоднее использовать. Например когда объектов на экране мало, что выгоднее: Очищать всю канву сразу? canvas.clearRect(0, 0, canvas.width, canvas.height); или область для каждого объекта? for(var i in objects){ canvas.clearRect(objects[i].x,objects[i].y,objects[i].width,objects[i].height); } а когда объектов много? Спасибо! |
а сколько объектов ?
Если до фига то целиком. Если 1-2 то можешь очищать область. |
Цитата:
а так планируется не больше 30 объектов на экране, может 50, но это точно максимум. большую же часть времени будет примерно 15. Цитата:
|
гипотетически
профит=ширина канваса*высоту канваса - (ширина спрайта*высоту спрайта)* кол-во спрайтов если профит, значение положительное то чистим спрайт если профит, отрицательное то канву. на практике в реале 20-30 штук спрайтов уже тормозят, если спрайт запоминат часть фона. Без запоминания 1000 помоему, дальше томоза очистка всего экрана 5000 спрайтов, дальше тормоза у меня в хроме так получилось от идеи трансгуманиста будет прок, если сотня другая обьектов скучкованы в одной области, и при этом нет обьектов в других областях. |
Цитата:
|
это плохая была идея
Непомню где я её использывал, толи на спектруме толи в qbasic на 386, непомню. Но где-то она точно клёва работала :D\ суть в том что перед тем как прорисоваться, спрайт копирует ту часть канваса в которую он будет рисоваться, затем рисуется, на следующем такте спрайт возвращает часть скопированного фона, передвигается и запоминает часть фона вновь. но это бредовая для js идея, извлечение данных из канваса дико тормозная вещь. Вместо тысяч спрайтов по экрану с трудом будут ползать несколько десятков. либо рисуйте фон для каждого кадра, вместо очистки экрана. либо используйте несколько канвасов друг над другом, на нижнем фон, на верхнем спрайты и clearRect очистка |
Цитата:
|
Цитата:
не грусти, бро* :) *позаимствовано у Максимуса |
Тема конечно устарела, а я вот который день не могу понять, как сделать ластик в моей Раскраске круглым. http://clecar.ru/ris.html
|
clecar, https://developer.mozilla.org/en-US/...al/Compositing
Тебе нужен source-out, вникай. |
Часовой пояс GMT +3, время: 12:26. |