4

我正在开发基于浏览器的游戏 atm,并且已经在研究将其移植到其他平台的选项,例如在 Web 浏览器中播放可能不适合的控制台或设备。

游戏几乎都是 JavaScript,通过 2d 画布上下文完成渲染。

我希望的是已经有一个 c++ 库/api 可以与谷歌的 v8 引擎一起工作,以处理 JavaScript 中的画布调用并用 opengl 或类似的东西渲染它们

有谁知道可能提供此功能的项目吗?

否则,你会如何假设我将我的 javascript 嵌入到 c++ 中,而对 javascript 所需的更改尽可能少,因为我真的不想在平台之间维护太多差异?

4

4 回答 4

4

Qt 是一个非常好的与 LGPL 许可兼容的 C++ 库,其中包括一个基于 webkit 且支持 javascript 的小部件。此外,作为脚本语言,Qt 使用与 C++ 紧密集成的 javascript(很容易编写 C++ 类并使其在 javascript 级别可见)。

Qt 是多平台的,并带有高度复杂的 IDE。

Qt 目前没有使用 V8,但移植正在进行中,他们的目标是提供 100% 向后兼容的解决方案。

Qt 的唯一“问题”是 IMO:

  • 它超大
  • 它是一个框架,而不是一个库。你不能轻易地“使用”Qt,你应该接受这个观点(但是文档质量很好)。
  • 长期前景有点模糊(不像几个月前那么糟糕)
于 2011-08-11T05:50:51.760 回答
3

我想我在这里有点晚了,但我正在寻找类似的解决方案。我找到了node-canvas,但我不知道挂钩它是否可行,因此它呈现为类似SDLSFML管理的窗口。

但出于我自己的目的,我会将我的代码移植到 C++ 中,并直接将Cairo与 SFML 和 OpenGL 一起使用。

于 2012-06-28T21:28:35.310 回答
0

我有一个有趣的项目使用 id FireBreath(firebreath.org)。这并不完全是您正在寻找的东西,但在某些方面它会让您接近。Firebreath 允许在 C++ 中创建浏览器插件。Firebreath 的功能之一是它允许您从浏览器插件中的 C++ 访问和修改 DOM,以及在 C++ 中创建可以从页面上的 JavaScript 访问的方法和属性。

于 2011-08-01T16:53:15.493 回答
0

有趣的想法 - 另一种可能性是使用 Adob​​e Air,并通过 StageWebView 和 Flex 4 渲染游戏。如果您有兴趣,这里有一些使用该东西的示例代码:

https://github.com/JustinBeckwith/frink/blob/master/frink-flex/src/controls/WebBrowser.as

于 2011-08-01T16:39:54.487 回答