我在评论中提到的替代解决方案,如您所感兴趣:
如果您具有复杂背景,则可以创建等效的简单地图。
例如。这个背景:
会使用这个简单的布局图:
然后有一个第二个不可见的画布,你沿着这些线运行一些东西:
(粗略的轮廓,需要编辑才能为你工作)
var x = <drone X position>; var y = <drone Y position>; var colour = secondCanvasContext.getImageData(x, y, 1, 1).data; if(colour[0] == 0 && colour[1] == 0 && colour[2] == 0){ // Your drone is on a black background, so it's not hitting a wall }