","answerCount":2,"upvoteCount":3,"suggestedAnswer":[{"@type":"Answer","text":"You should put all drawImage() inside a window.onload function to make sure the image has loaded before drawing it to the canvas.","upvoteCount":3},{"@type":"Answer","text":"function draw(){\r\n\tctx.drawImage(bg,0,0)\r\n\tctx.drawImage(pipeNorth,100,0)\r\n\tctx.drawImage(pipeSouth,100,0+constant);\r\n\r\n requestAnimationFrame(draw);\r\n}\r\n\r\nAdd requestAnimationFrame(draw); and it must work","upvoteCount":1}]} }
+ 3

html5 canvas problem

I tried to make a flappybird game using html5 canvas on javascript but i show nothing(this is only the background) heres my code: <canvas id="canvas" width="800" height="600" style="border:1px solid #000000"></canvas> <script> canvas = document.getElementById("canvas"); ctx = canvas.getContext("2d"); var bebek1 = new Image(); var bg = new Image(); var pipeNorth = new Image(); var pipeSouth = new Image(); var fg = new Image(); bebek1.src = "images/bebek1.png" bg.src = "images/bg.png" pipeNorth.src = "images/pipeNorth.png" pipeSouth.src = "images/pipeSouth.png" fg.src = "images/fg.png" var gap = 75; var constant = pipeNorth.height+gap; function draw(){ ctx.drawImage(bg,0,0) ctx.drawImage(pipeNorth,100,0) ctx.drawImage(pipeSouth,100,0+constant); } draw(); </script>

21st Feb 2018, 11:26 AM
Deven Valisten
Deven Valisten - avatar
2 Answers
+ 3
You should put all drawImage() inside a window.onload function to make sure the image has loaded before drawing it to the canvas.
21st Feb 2018, 12:12 PM
Jonathan Pizarra
Jonathan Pizarra - avatar
+ 1
function draw(){ ctx.drawImage(bg,0,0) ctx.drawImage(pipeNorth,100,0) ctx.drawImage(pipeSouth,100,0+constant); requestAnimationFrame(draw); } Add requestAnimationFrame(draw); and it must work
3rd May 2019, 4:07 PM
kishor
kishor - avatar