鍍金池/ 問答/HTML5  HTML/ 請問 canvas 畫出多個相互碰撞的小球,怎么在每個小球上添加事件

請問 canvas 畫出多個相互碰撞的小球,怎么在每個小球上添加事件

canvas 在畫布畫出多個小球碰撞,請問如何給小球添加點擊事件?

據(jù)我所知,畫布上添加事件實際上獲取畫布上的某個區(qū)域來固定一個事件?是否小球不斷改變位置就不可以加了?除非每個小球的活動空間是固定的?
謝謝。

回答
編輯回答
黑與白

canvas上畫的球 你肯定能獲取到球的圓心坐標(biāo),只需要判斷你鼠標(biāo)點擊的點和圓心的距離, 是否小于半徑,小于半徑就說明在圓內(nèi) 就可以出發(fā)點擊事件

2017年2月13日 15:01
編輯回答
無標(biāo)題

把每個球當(dāng)作一個對象,擁有自己的寬高半徑。每秒計算位置,如果和別的球的距離小于半徑,就說明碰撞了

2017年7月9日 02:53
編輯回答
薄荷綠

每個球都含有自身的坐標(biāo)和半徑等信息,在用戶點擊的時候?qū)λ械那蜻M行遍歷,看看是否達到要求。

2017年9月15日 13:24
編輯回答
菊外人

給球體建一個構(gòu)造函數(shù),定義其width、height、speed、move方法等。
監(jiān)聽鼠標(biāo)在canvas上的坐標(biāo),然后判斷是否在哪個球的范圍內(nèi)或不在范圍內(nèi)。

2017年7月18日 19:25
編輯回答
久愛她

這個很好解決,只需要將每個圓作為一個對象,維護對象內(nèi)的坐標(biāo)信息就行了。
可以嘗試一下這個 canvas 2d 渲染庫,https://www.github.com/PengJi...,
體量小,功能強大,支持畫圖,圖形綁定時間,拖拽,放大縮小等。
希望對你有所幫助。

2018年3月18日 09:34