canvas 判斷兩球是否碰撞效果
本章節分享一段程式碼例項,它實現了判斷兩球是否碰撞的功能。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> * { margin: 0; padding: 0; } </style> </head> <body> <canvas id="canvas" width="500" height="500"></canvas> <script type="text/javascript"> var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var c1 = { x: 100, y: 100, r: 50, color: 'palegreen' } var c2 = { x: 200, y: 200, r: 70, color: 'deeppink' } var cs = [c1, c2]; var index = -1; function drawRect() { ctx.clearRect(0, 0, canvas.width, canvas.height); for (var i = 0; i < cs.length; i++) { ctx.beginPath(); ctx.fillStyle = cs[i].color; ctx.arc(cs[i].x, cs[i].y, cs[i].r, 0, Math.PI * 2, false); ctx.fill(); if (arguments.length) { if (ctx.isPointInPath(arguments[0], arguments[1])) { index = i; } } } } drawRect(); canvas.onmousedown = function(e) { var ev = e || window.event; // 滑鼠座標 var x = ev.clientX; var y = ev.clientY; drawRect(x, y); if (index == -1) { return; } var oldX = x - cs[index].x; var oldY = y - cs[index].y; canvas.onmousemove = function(e) { var ev = e || window.event; cs[index].x = ev.clientX - oldX; cs[index].y = ev.clientY - oldY; drawRect(); pengZhuang(c1, c2); } canvas.onmouseup = function() { index = -1; canvas.onmousemove = null; } } function pengZhuang(obj1, obj2) { var dis = obj1.r + obj2.r; var DISX = (obj1.x - obj2.x) * (obj1.x - obj2.x); var DISY = (obj1.y - obj2.y) * (obj1.y - obj2.y); if (dis >= Math.sqrt(DISX + DISY)) { alert("撞上了"); } } </script> </body> </html>
相關文章
- canvas實現判斷兩球是否碰撞效果Canvas
- canvas判斷點是否在路徑內Canvas斷點
- js判斷兩個物件是否相等JS物件
- JavaScript判斷兩個變數是否相等JavaScript變數
- js 判斷兩個變數是否相等JS變數
- 如何判斷當期瀏覽器是否支援canvas瀏覽器Canvas
- 【質數判斷】給定兩個數,判斷這兩個數是否互質?
- golang中判斷兩個slice是否相等與判斷值下的 陣列是否相等Golang陣列
- JavaScript 中,如何判斷兩個物件是否相等?JavaScript物件
- 判斷單連結串列是否存在環,判斷兩個連結串列是否相交問題詳解
- 如何判斷JavaScript中的兩變數是否相等?JavaScript變數
- JDK是如何判斷兩個物件是否相同的?判斷的流程是什麼?JDK物件
- 判斷python字典中key是否存在的兩種方法Python
- Python Tips 01 : 判斷兩個檔案是否相同Python
- 判斷字串是否為空字串
- 判斷URL字串是否合法字串
- 41:判斷元素是否存在
- 判斷oracle是否啟動Oracle
- Javascript 判斷物件是否相等JavaScript物件
- 判斷SD卡是否可用SD卡
- 判斷字串是否唯一字串
- 判斷兩字串的字符集是否相同《演算法很美》字串演算法
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- canvas 碰撞反彈Canvas
- 判斷網路是否連線
- JavaScript 判斷是否是陣列JavaScript陣列
- JavaScript 判斷函式是否存在JavaScript函式
- python判斷是否為listPython
- js判斷字串是否為空JS字串
- mysql如何判斷是否為空MySql
- postgresql如何判斷表是否存在SQL
- python 判斷是否為中文Python
- golang判斷檔案是否存在Golang
- JavaScript判斷字串是否為空JavaScript字串
- java判斷字串是否為空Java字串
- jQuery 判斷元素是否隱藏jQuery
- Activiti判斷流程是否結束
- C 判斷字串是否是子集字串