2011-04-05 70 views
4

我有一个PNG图像,我在Inkscape中编辑。这是一个不规则的锯齿形状,但我需要使用它进行碰撞检测。这太大了,无法在它周围制作原始矩形(它占用的不仅仅是一个标准的手机屏幕)。所以我一直在它周围的INkscape中绘制矩形,并注意到这些矩形的像素尺寸。Android的画布位图大小和尺寸

我的意图是使用这些“虚构”矩形的联合进行碰撞检测。然而,我的努力遇到了困难。手机上图像的默认大小似乎与Inkscape不同。

我想知道使用大型不规则对象进行碰撞检测的最佳方法,以及/或者如何使画布位图measuremtns与其像素(或mm)测量值相同。

回答

0

我建议做的是创建一个等价图像,其中您的碰撞区域的值为1,非碰撞区域的值为0(或0和255)。

所以,你将有两个图像,你将显示的五颜六色的图像和你将加载的碰撞图像。

然后,如果你是一个碰撞区域内有可以检测:

Bitmap collision; 
collision = BitmapFactory.decodeStream(...yourImage...); 
collision.getPixel(x,y) 

另一种解决方案是创建两个数组后处理碰撞图像,你可以做到这一点创建处理您最初的Java应用程序图像并用两行创建一个文本文件,第一行是x坐标,第二行是y坐标。

然后,在你的Android应用程序中读取这个文件,并且如果你的x和y存在于这个数组中,是一个碰撞点。