HTML5是當前Web開發中的一項重要技術,可以實現很多有趣的功能。本文將向大家介紹HTML5中小球碰撞效果的代碼實現。
<!DOCTYPE html> <html> <head> <title>小球碰撞效果</title> <style> canvas{ border:1px solid #ccc; } </style> </head> <body> <canvas id="myCanvas" width="500" height="400"></canvas> <script> var canvas = document.querySelector('#myCanvas'); var context = canvas.getContext('2d'); var ballRadius = 20; var x = canvas.width / 2; var y = canvas.height / 2; var dx = 5; var dy = -5; function drawBall() { context.beginPath(); context.arc(x, y, ballRadius, 0, Math.PI*2); context.fillStyle = "#0095DD"; context.fill(); context.closePath(); } function draw() { context.clearRect(0, 0, canvas.width, canvas.height); drawBall(); x += dx; y += dy; if(x + dx >canvas.width-ballRadius || x + dx< ballRadius) { dx = -dx; } if(y + dy >canvas.height-ballRadius || y + dy< ballRadius) { dy = -dy; } } setInterval(draw, 10); </script> </body> </html>
在代碼中,我們首先使用<canvas>標簽創建了畫布,然后通過JavaScript中的Canvas API來設置小球屬性、繪制小球圓形以及處理小球的運動和碰撞效果。
對于小球的屬性設置,我們定義了小球半徑ballRadius、坐標x、y、速度dx、dy等變量。drawBall()函數用于在畫布上繪制小球,并使用fill()和closePath()方法來填充小球顏色和自動閉合路徑。draw()函數被setInterval()方法調用,它不斷的重繪畫布,實現小球的動態移動效果。在每次重繪之前,首先使用clearRect()方法清除畫布上的內容,然后通過調用drawBall()函數繪制小球,最后更新小球的坐標位置。會注意到我們使用了條件語句來判斷小球是否與畫布邊緣相碰撞,實現小球在畫布內反彈的效果。
小球碰撞效果是HTML5應用中的一個非常有趣的玩具,本文向大家展示了實現該效果的代碼。希望本文的內容對大家有所幫助,歡迎大家進行應用拓展和個性化定制。