如何为现有 JavaScript 编程游戏"add"并发性



在jsrobots.com上,向JavaScript编程游戏添加并发性的一些方法/"最佳"方法是什么??

它本质上是对一款名为CROBOTS的古老DOS游戏的JavaScript重写,但有一个非常重要的遗漏——机器人脚本没有适当的并发性或虚拟加工。每个机器人用户脚本一个接一个地执行。

我在如何玩页面的"机器人脚本注释"部分解释了更多关于这个限制的内容,但基本上它很糟糕,使游戏无法玩,而且对最初的CROBOTS来说是不真实的。

我的问题是,我应该如何将机器人脚本的并发性放入游戏中?它看起来像是NodeJS中的一个,用于更服务器端的解决方案或浏览器Web Workers将其保留在浏览器中。起初,我主要和网络工作者一起玩。我应该让整个机器人对象成为网络工作者吗?还是只是用户编写的部分?当前的机器人对象负责绘制自己,但网络工作者无法做到这一点,因为他们无法访问画布对象或DOM等。

你会怎么做?

游戏的基本设计如下http://tinypic.com/view.php?pic=1zoxnbq&s=5,但这基本上是一个自由开放源码软件项目,所以请放心使用View Source;-)[实际上GitHub中有一个稍旧的版本https://github.com/danielrhodeswarp/JS-Robots]

感谢

Web工作程序可以用于运行用户脚本,然后使用webworker和主线程之间的消息传递api,在工作程序运行完所有需要的内容后,返回主线程更新dom/draw所需的任何内容。这将允许您为每个想要的机器人配备一个工作程序,并并行运行它们。

看看这个,尤其是传递数据的部分。

最新更新