我在Flash中面临着一个游戏的问题,我不知道我想让它成为可能还是不可能。
我正在尝试为闪存中的孩子们做一个游戏,使用AS3,孩子们必须画一个与目前舞台上的形状相似的形状。例如,有一个"a“字母,孩子必须画出和它相似的东西。
我的问题是,是否有一种方法可以检查孩子画的形状是否与舞台上的形状相似,以及我如何实现这一点。
发布于 2012-09-13 00:52:27
我会把这两张图片缩小到更低的分辨率...就像一个16x16的网格,大概。将栅格中的每个点标记为打开或关闭(绘制或不绘制)。
然后相互叠加,看看有多少点被设置在一个点中,而不是另一个点中。如果超过阈值,则将其标记为不匹配。
您可以通过缩放绘制的图像来改进算法。在这两个图像中找到最上面和最下面绘制的像素,并缩放绘制的图像以匹配第一个图像。你也可以对宽度做同样的事情。这样一来,玩家就不会因为画了一个好的、但更小的图片而受到惩罚。
另一个改进是进行多次比较,将绘制的图像从左到右、向上和向下移动,选择“最佳”匹配。这样你就不会因为画出偏离中心的东西而受到惩罚。
这一切都有点老生常谈,但我认为走这条路可能比尝试结合解析笔画和其他基于OCR或手势的算法的逻辑更有帮助。
发布于 2012-09-13 00:15:42
是的,这是可能的。
您可能希望跟踪鼠标的x,y坐标(如果正在使用鼠标绘制),然后将这些值转换为与之匹配的形状。
然后进行某种类型的错误检查。例如,将玩家绘制的形状的面积大小与给定的形状等进行比较。
另一个可能是绘制的线条与它们的平均值之间的角度。画了多少条线,等等,我想应该很好。
只需检查像素颜色并定义哪里有绘图,哪里没有绘图(即白色背景),就可以做到这一点。
希望这能有所帮助。
https://stackoverflow.com/questions/12392369
复制相似问题