如何为现有的JavaScript编程游戏“添加”并发性

时间:2012-04-02 09:40:11

标签: javascript html5 node.js web-worker

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

它本质上是一个名为CROBOTS BUT的古老DOS游戏的JavaScript重写,有一个非常重要的遗漏 - 机器人脚本没有正确的并发或虚拟加工。每个机器人用户脚本完全依次执行。

我在如何播放页面的“机器人脚本注释”部分中详细解释了这个限制,但基本上它很糟糕,并使游戏无法播放并且不符合原始的CROBOTS。

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

你会怎么做?

基本的游戏设计就像http://tinypic.com/view.php?pic=1zoxnbq&s=5,但这基本上是一个FOSS项目,所以请随意疯狂使用View Source ;-) [实际上GitHub中有一个稍旧的版本https://github.com/danielrhodeswarp/JS-Robots]

谢谢

1 个答案:

答案 0 :(得分:1)

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

查看this,尤其是传递数据部分。