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物件
- CSS實現兩個球相交的粘粘效果CSS
- canvas實現的小球四壁碰撞效果程式碼例項Canvas
- JavaScript判斷兩個變數是否相等JavaScript變數
- js 判斷兩個變數是否相等JS變數
- 如何判斷當期瀏覽器是否支援canvas瀏覽器Canvas
- 【質數判斷】給定兩個數,判斷這兩個數是否互質?
- C#實現判斷字元是否為中文C#字元
- golang中判斷兩個slice是否相等與判斷值下的 陣列是否相等Golang陣列
- JavaScript 中,如何判斷兩個物件是否相等?JavaScript物件
- Golang 學習——如何判斷 Golang 介面是否實現?Golang
- canvas實現波浪效果Canvas
- delphi 判斷類是否實現介面,獲取類實現的介面
- 判斷單連結串列是否存在環,判斷兩個連結串列是否相交問題詳解
- 如何判斷JavaScript中的兩變數是否相等?JavaScript變數
- JDK是如何判斷兩個物件是否相同的?判斷的流程是什麼?JDK物件
- 使用Python實現一個棧, 判斷括號是否平衡Python
- js實現的判斷是否是閏年程式碼例項JS
- 判斷python字典中key是否存在的兩種方法Python
- Python Tips 01 : 判斷兩個檔案是否相同Python
- canvas實現 漂亮的下雨效果Canvas
- 判斷字串是否為空字串
- 判斷URL字串是否合法字串
- 41:判斷元素是否存在
- 判斷oracle是否啟動Oracle
- Javascript 判斷物件是否相等JavaScript物件
- 判斷SD卡是否可用SD卡
- 判斷字串是否唯一字串
- jquery實現的判斷倒數計時是否結束程式碼jQuery
- 判斷兩字串的字符集是否相同《演算法很美》字串演算法
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- 由canvas實現btn效果有感Canvas
- canvas實現的雪花飄落效果Canvas
- canvas實現的可愛小貓效果Canvas
- canvas 碰撞反彈Canvas
- 廣告投放效果難判斷?整合華為DTM為您輕鬆實現!