我在使用 Flash 中的游戏时遇到了问题,我不知道我想让它成为可能与否。
我正在尝试使用 AS3 在 Flash 中为孩子们制作游戏,孩子必须在其中绘制与当前舞台上的形状相似的形状。例如,有一个“a”字母,孩子必须画出类似的东西。
我的问题是,是否有办法检查孩子画的形状是否与舞台上的形状相似,我该如何做到这一点。
我在使用 Flash 中的游戏时遇到了问题,我不知道我想让它成为可能与否。
我正在尝试使用 AS3 在 Flash 中为孩子们制作游戏,孩子必须在其中绘制与当前舞台上的形状相似的形状。例如,有一个“a”字母,孩子必须画出类似的东西。
我的问题是,是否有办法检查孩子画的形状是否与舞台上的形状相似,我该如何做到这一点。
我会拍摄这两个图像并将它们缩小到低得多的分辨率……比如 16 x 16 左右的网格。将网格中的每个点标记为打开或关闭(绘制或未绘制)。
然后相互叠加,看看有多少点设置在一个而不是另一个。如果超过阈值,则将其标记为不匹配。
您可以通过缩放绘制的图像来改进算法。找到两者中最顶部和最底部的绘制像素,并缩放绘制的图像以匹配第一张图像。你可以对宽度做同样的事情。这样,玩家就不会因为画出好的但更小版本的图片而受到惩罚。
另一个改进是进行多重比较,将绘制的图像从左到右、上下移动,采用“最佳”匹配。这样你就不会因为从中心画一些东西而受到惩罚。
这有点老套,但我认为走这条路可能比尝试合并逻辑来解析笔画和其他基于 OCR 或基于手势的算法更有帮助。
对的,这是可能的。
您可能想要跟踪鼠标的 x,y 坐标(如果使用鼠标绘制),然后将值转换为与之匹配的形状。
然后进行某种错误检查。例如将玩家绘制的形状的面积大小与给定的形状和其他东西进行比较。
另一个可能是绘制的线之间的角度和它们的平均值。我认为画了多少条线等等会很好。
您可以通过检查像素颜色并定义有绘图的位置和没有绘图的位置(即白色背景)来实现这一点。
希望这可以帮助。