我正在开发一个javascript游戏。它有一个相当复杂的UI,需要大量的用户交互才能进行移动。我现在正在开发这款游戏的人工智能,以便它可以在电脑上玩。我在考虑在计算机玩游戏时使用dispatchEvent方法以编程方式引发事件来驱动UI,但我遇到了一个问题,如果用户也开始与UI交互怎么办-这将完全搞乱游戏。那么,开发javascript游戏的人是否遵循某种模式来解决这个问题呢?
假设我有一组事件处理程序- onmousedown, onmousemove, onmouseup等。人类玩家和计算机都使用这些处理程序进行移动。但是,人工玩家依赖于与应用程序进行手动交互,而计算机则通过dispatchEvent方法调用这些处理程序。当轮到计算机时,我需要一种方法来告诉js:看,我不希望你在手动UI交互时调用这些处理程序。仅在响应dispatchEvent时调用它们
发布于 2015-07-14 07:13:20
您可以尝试将一些元数据附加到标识由计算机引发的事件的dispatchEvent。
发布于 2015-07-14 07:24:14
指示事件是由浏览器(例如在用户单击之后)还是由脚本(使用事件创建方法,如
event.initEvent)发起的
注某些版本的IE可能会将脚本创建的事件视为受信任事件。
但根据DOM4的说法,这应该是可行的:
触发一个名为e的事件意味着一个新的事件...和..。其isTrusted属性初始化为true,将对给定对象执行dispatched操作。
dispatchEvent会产生不受信任的事件:将事件的isTrusted属性初始化为false。
https://stackoverflow.com/questions/31395004
复制相似问题