如何修改AS3中的运动跟踪

9
我有一个令人惊叹的教程,网址是http://www.computerarts.co.uk/tutorials/build-your-own-motion-tracking-system。 在开发版本中,跟踪器沿着X轴移动。我希望它保持静止,而不是移动,并且当来自网络摄像头的物体出现在其前面时,静止的十字标记应该能够触发事件,最好是播放声音。 感激您所提供的帮助。我完全不会AS。如果您有其他教程并链接给我,我将不胜感激。

2
那是一个非常棒的教程,感谢分享那个网站 :) - Martin
+1,很酷的教程,我会看一下然后回答你的问题! - Eugeny89
谢谢Eugeny89,没问题mouseas。 - Vivian Lobo
3个回答

1
最简单的方法可能是创建第二个Point来跟踪位置。然后,您可以测试与不移动的TrackerMC的碰撞。要做到这一点: 在顶部添加


private var _movingPos:Point = new Point();

然后,在resize()函数中添加:

_tracker.x = sW * 0.5;
_movingPos.y = sH * 0.5;

然后,在loop()中将_tracker.x += (_pos.x - _tracker.x) * .1;更改为:

_movingPos.x += (_pos.x - _movingPos.x) * 0.1;

为了测试点是否在准星前面,在loop()函数的末尾添加:

if (_tracker.hitTestPoint(_movingPos.x, _movingPos.y, true))
    doSomething(); // Add whatever custom function here.

在你的doSomething();函数里,你可以播放声音,或者做其他任何事情。 为了调试,你可以添加一个第二个TrackerMC并将其位置更新为_movingPos以查看你所在的位置。

1

我曾经用AS3编写过类似的运动跟踪器,它已经上传到Github上了。你可以在这里查看:https://github.com/chinchang/AS3-Motion-Tracker

如果你对它有任何疑问,请告诉我。

此外,我还用它制作了一个样例游戏,你可以在这里找到:here

祝好!


0

我不知道你在AS3方面有多少经验,但这是一件比较复杂的事情。

我曾在学校里上过几节关于运动跟踪的AS3课程,那些课程利用了你的网络摄像头。虽然我不知道如何使用它,但我仍然保存着我们使用的AS3代码的源代码包。 你可以在这里找到这两个源代码包:

它们是由一位名叫 Grant Skinner 的人编写的。我不知道它们的版权和限制是什么,所以请小心 :)

在这里你可以找到更多,也许是更新版本: http://www.insurgent.com.ar/en/tag/grant-skinner-en/

希望这能帮到你!


非常感谢您的分享,我是一个新手,但我知道如何处理源代码。再次感谢。 - Vivian Lobo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接