我是Android手中 Canvas 和 SurfaceView 的新手。
我正在尝试使用 canvasview 使用 canvas 实现一个应用程序,我想在该视图上拖动位图。我可以拖动任何no.of位图
我在位图中有两种不同的尺寸,如下图所示:
要求
大尺寸(Bmp1)位图 - 1
小而等分的尺寸/分辨率位图(A,B,C,D,E .....) - n(数量无限制)
3.我必须将A / B / C / ...拖到Bmp1。当任何小的Bmp到达Bmp1并且它在相对端口的周围时(A / B / C / .... )应建立联系。
4.所以,我必须将任何BMP拖过任何其他BMP
问题 :
当我将一个小的Bitmap拖动到大Bitmap时,它们会在大中心处重叠,并且无法分别拖动小Bitmap直到移动大Bitmap。
当两个小位图关闭时,一个位图在下方绘图位图上重叠,无法将它们分开。
如何避免这些问题?
答案 0 :(得分:0)
正常碰撞检测...使用for循环迭代其他位图位置...在此循环中只需检查
if(Math.abs(draggedBMP.posX-otherBMP.posX)< draggedBMP.width / 2 + otherBMP.width / 2&& Math.abs(draggedBMP.posY-otherBMP.posY)< draggedBMP.height /2+otherBMP.height/2)Log.e(“致命”,“重叠......世界将爆炸”);
或类似的东西......“AABB”< - google that