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

时间:2017-06-18 05:12:00

标签: react-native

我们正在做一个反应原生的小型手机游戏。但现在我们不确定反应原生是否是我们想要创造的好选择。

我们的游戏只是在一个不那么小的地图中使用瓷砖"。让我们说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是解决这样一个项目的错误系统?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

恕我直言,我绝不会推荐使用反应原生来制作像你所描述的那样的游戏(使用瓷砖地图),不那么以UI为重点的游戏,如扑克,交易卡完全没问题。

但你可能会渲染成千上万的瓷砖而没有任何剪裁?如何尝试启用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)。每个引擎都有自己的优点/缺点,所以我建议你在基本级别尝试两个引擎更合适。