ReactJS - 是否有任何推荐的游戏方式(2D 平铺地图)



我们正在用 react-native 做一个小型手机游戏。但是现在我们不确定 react-native 是否是我们想要创建的东西的好选择。

我们的游戏只是在一个不小的"地图"中使用瓷砖。假设它的 1000 x 1000 个瓷砖,所以最后是 1.000.000 个瓷砖。

1)我们的第一次尝试是渲染1 Mio。 组件 - 结局很糟糕。即使是 100 x 100 也不可能用 react-native 渲染。

2)我们最终添加了一些逻辑,只渲染视图中的瓷砖。但是,当执行任何操作(并呈现新磁贴)时,应用程序会像地狱一样滞后。

3)所以我们确保没有重新创建瓷砖,而是我们只是更改了道具,所以瓷砖改变了位置而不是重新创建。这也最终导致了地狱般的滞后体验(即使它像 20 个瓷砖只是改变道具)。

在这些之后,我们认为 React-Native 对于我们想要创建的东西没有很好的性能:一个带有一些交互的大图块地图。

4)所以我们考虑在我们的react-native应用程序中使用画布来绘制瓷砖,但似乎这也不是常见的方法。我们已经找到了一些用于 react-native 的 canvas 包,但这些只是添加了一些对我们的项目无用的组件 - 使用这些组件,我们最终也会渲染像 .但目标是有一个 ref 我们可以在其中使用画布的好处。

所以 - 如果 react-native 太滞后了,无法以自己的方式做这样的事情,并且 canvas 在 web 中不可用,那么解决此类项目的推荐方法是什么?或者答案可能是 反应原生 是解决此类项目的错误系统?有什么建议吗?

恕我直言,我永远不会推荐 react-native 来制作像您描述的那样的游戏(使用瓦片地图),较少关注 UI 的游戏,如扑克、集换式卡牌是完全没问题的。

但是您可能在没有任何剪切的情况下渲染数千个瓷砖?尝试启用视图剪辑怎么样?请参阅此处的删除剪辑子视图: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完全可以通过这个引擎找到)。每个引擎都有自己的优点/缺点,所以我建议你在基本级别上尝试两者,看看哪一个更合适。

最新更新