2017-06-18 34 views
0

我們正在做一個反應原生的小型手機遊戲。但是現在我們不確定反應原生是否是我們想要創造的好選擇。ReactJS - 有沒有推薦的遊戲方式(2D Tile Maps)

我們的遊戲只是在一個不那麼小的「地圖」中使用瓷磚而已。可以說它的1000 x 1000塊瓷磚,最後是1000.000塊瓷磚。

1)我們的第一個嘗試是呈現1 Mio。組件 - 結局不好。即使是100 x 100也不可能用反應本機渲染。

2)我們最終添加了一些邏輯,它只在視圖內呈現瓦片。但是當做任何動作(並且新的圖塊被渲染時),該應用程序就像地獄一樣遲鈍。

3)因此,我們確信沒有得到瓷磚重新過相反,我們只是改變道具等等瓦改變位置而不是重建。這最終也會以地獄般的經驗而告終(即使它像20瓦片一樣只是改變道具)。

這些之後,我們決定作出反應,本地人,他爲我們想創造沒有很好的表現:一個大的瓦片地圖與一些互動。

4)因此,我們在考慮使用畫布在我們的反應,本機應用程序繪製的瓷磚,但似乎這也不是常見的方式。我們已經發現了一些用於react-native的canvas包,但這些只是添加了一些對我們的項目沒用的組件 - 這些組件我們最終還會通過渲染組件來實現。但是我們的目標是讓我們有一個參考可以使用畫布優點的地方。

所以 - 如果反應母語是他自己的方式和帆布做這樣的東西太laggy是不可用的,因爲它是在網絡這將是解決這樣一個項目的推薦的方法?或者答案可能是反應原生是解決這樣一個項目的錯誤系統?有什麼建議麼 ?

回答

1

恕我直言,我永遠不會建議作出反應,原產於做一個遊戲像你所描述的(與tilemap的),像撲克UI不太注重遊戲,交易卡是完全正常不過。

但是,您可能會渲染數千個瓷磚而沒有任何裁剪?如何嘗試啓用視圖剪輯?見removeClippedSubviews這裏:https://facebook.github.io/react-native/docs/view.html

如果你仍然想與反應本地的,我建議使用插件來推動這樣的:https://github.com/ProjectSeptemberInc/gl-react-native

的目的是爲了有一個OpenGL ES的畫布,以加速你的遊戲渲染。

否則,對於2D遊戲,cocos2d的,JS似乎適合你(看來你的背景是JavaScript的),儘管它需要一些知識的編譯器,以獲得遊戲其實在移動設備上運行。另一種解決方案是Unity 3D(2D是完全可以通過這個引擎找到的)。每個引擎都有自己的優點/缺點,所以我建議你在基礎級別嘗試哪一個更適合。

+0

感謝您的輸入 - 有些是我的新東西,我會研究它們:) – TJR

+2

我同意。我使用了gl-react。你可以關注webGL的教程,它的工作原理完全相同。 –

相關問題