我们正在做一个反应原生的小型手机游戏。但现在我们不确定反应原生是否是我们想要创造的好选择。
我们的游戏只是在一个不那么小的地图中使用瓷砖"。让我们说1000 x 1000 Tiles,最后是1.000.000 Tiles。
1)我们的第一次尝试是渲染1 Mio.组件 - 结局不好。即使100 x 100也不可能使用react-native进行渲染。
2)我们最终添加了一些逻辑,在视图中只渲染了tile。但是当做任何动作(并且渲染了新的图块)时,应用程序就像地狱一样迟缓。
3)因此我们确保不会重新创建Tile,而只是更改了props,因此tile会更改位置而不是重新创建。这最终也是因为地狱般的经历(即使它像20 Tiles只是改变了道具)。
在这些之后,我们认为React-Native对我们想要创建的内容没有很好的表现:一个带有一些交互的大图块地图。
4)所以我们考虑使用canvas在我们的本机应用程序中绘制图块,但似乎这也不是常见的方法。我们发现了一些反应原生的画布包,但这些只是添加了一些对我们的项目无用的组件 - 使用这些组件我们最终也会通过渲染组件来实现。但目标是有一个参考,我们可以使用画布的好处。
所以 - 如果react-native因为以他自己的方式做这样的事情而过于迟钝而且画布不可用,因为它在web中是什么样的解决这样的项目的推荐方法?或者答案可能是react-native是解决这样一个项目的错误系统?有什么建议吗?
答案 0 :(得分:1)
但你可能会渲染成千上万的瓷砖而没有任何剪裁?如何尝试启用View剪辑?请在此处查看removeClippedSubviews:https://facebook.github.io/react-native/docs/view.html
如果您仍想使用react-native,我建议使用这样的插件:https://github.com/ProjectSeptemberInc/gl-react-native
目的是使用OpenGL ES画布来加速游戏渲染。
否则,对于2D游戏,cocos2d-js似乎适合你(看起来你的背景是javascript),虽然它需要一些编译器知识才能让游戏真正在移动设备上运行。另一个解决方案是Unity 3D(使用此引擎可以完全找到2D)。每个引擎都有自己的优点/缺点,所以我建议你在基本级别尝试两个引擎更合适。