2011-08-01 72 views
4

我正在研究基於瀏覽器的遊戲atm,並已着手將選項移植到其他平臺,如控制檯或設備,在網頁瀏覽器中播放可能不適合。是否有任何HTML5帆布實現嵌入在c + +

遊戲幾乎所有的JavaScript都通過2D渲染完成。

我所希望的是,已經有一個C++庫/ API,將結合工作,也許谷歌的V8引擎處理JavaScript中的畫布上通話和使用OpenGL或類似的東西使它們

有誰知道那裏可能提供這種功能的項目?

否則,你會怎麼想我將JavaScript嵌入到C++中,儘可能少地改變javascript,因爲我不想在平臺之間維護太多的差異?

+2

Qt似乎是一個合理的解決方案(包括Webkit) – 6502

+0

[fluff](https://github.com/BonsaiDen/Fluff.js)是opengl和v8的開始。然而,暴露的API不是一個畫布API,所以你需要編寫自己的js代理 – Raynos

+0

這兩個看起來很有趣,Qt看起來相當不錯,我沒有想到只是嵌入像webkit的東西,會很好,但如果有在C++中直接實現canvas api,雖然 – Tristan

回答

4

Qt是一個非常好的C++庫,與LGPL授權兼容,其中包括一個基於webkit的小部件,支持javascript。也作爲腳本語言Qt使用JavaScript與C++緊密集成(很容易編寫C++類並使其在javascript級別可見)。

Qt是一個多平臺,並配有高度複雜的IDE。

Qt目前並未使用V8,但正在進行移植,他們的目標是提供100%向後兼容的解決方案。

的Qt的唯一的 「問題」 是IMO是:

  • 這是巨大的
  • 這是一個框架,而不是一個圖書館。你不能輕易地「使用」Qt,你應該接受這個觀點(文檔質量優秀)。
  • 長期前景都有點模糊(不是那麼糟糕,因爲幾個月前,壽)
+1

我不會推薦使用QT進行遊戲開發,我在某處讀到它不適合這樣做,因爲它想要控制繮繩 - 並且當您製作遊戲時,您想要決定什麼時候發生,什麼時候發生。但另一方面,從瀏覽器開始,這可能不會有任何不同。 – Frank

0

一個有趣的項目我已經使用id FireBreath(firebreath.org)。這不是你正在尋找的,但在某些方面它會讓你接近。 Firebreath允許在C++中創建瀏覽器插件。 Firebreath的一個特點是它允許您從瀏覽器插件中的C++訪問和修改DOM,並且可以使用C++創建方法和屬性,這些方法和屬性可以從頁面上的JavaScript訪問。

1

我想我是有點晚了這裏,但我在尋找一個類似的解決方案。我發現node-canvas,我不知道是否可行,以便它呈現爲類似於SDLSFML管理窗口或不。

但爲了我自己的目的,我會將我的代碼移植到C++中,並直接使用Cairo與SFML和OpenGL。