パフォーマンス向上のためアニメーションのシーンでプリレンダリングを使いたいのですが
プリレンダリングを使うと clearRect() が機能しません。
clearRect() が機能しないせいで 図形 をアニメーションさせると図形の軌跡が消えません!
どうしたら プリレンダリングを行いながら clearRect() が機能するようになりますか?
HTML
1<body> 2 <canvas id = "game"> 3 </canvas> 4</body> 5 6<script> 7// 可視領域のCanvas 8const canvas = document.getElementById('game'); 9const ctx = canvas.getContext('2d'); 10 11// オフスクリーン 12const offscreen = document.createElement('canvas'); 13offscreen.width = canvas.width; 14offscreen.height = canvas.height; 15const offscreenCtx = offscreen.getContext('2d'); 16 17var speed = 10 18 19function clear(){ 20 ctx.clearRect(0,0,30,300) 21 22 requestAnimationFrame(clear) 23} 24 25function animation() { 26speed+=1 27 28offscreenCtx.fillRect(0, 0, 30, 30+speed) 29 30// 可視領域のCanvasにコピーして描画する 31 32ctx.drawImage(offscreen, 0, 0) 33 34 35requestAnimationFrame(animation) 36} 37clear() 38animation() 39 40</script>
clearRect() を animation() に入れて offscreenCtx.でもしてみたのですがなりませんでした。
回答よろしくお願いします!
回答1件
あなたの回答
tips
プレビュー