0

我刚刚开始使用 Crafty,并且正在根据本教程构建游戏:http: //buildnewgames.com/introduction-to-crafty/

但是我的游戏最终会有一个非常大的世界,我只想加载玩家当前位置所需的地图。有谁知道用 Crafty 做这件事的任何例子吗?

(我正在慢慢研究 api 文档,但还没有发现任何启发性的东西——我希望能找到某种内置功能......)

我特别寻找的是1)当玩家移动到地图边缘附近时滚动地图2)动态更改地图的Crafty代码

我有一些关于如何做到这一点的想法,但没有一个是吸引人的,所以我真的希望这是一个已解决的问题......

谢谢, 艾瑞克

4

1 回答 1

1

关于图书馆的问题,我认为你最好

https://groups.google.com/forum/#!forum/craftyjs

您还可以搜索它以找到您问题的现有答案。

在这里解释一个答案:您可以将地图分成几个部分,每个部分至少与屏幕一样大。确保始终创建播放器所在的部分及其周围的部分。一旦你移动到相邻的部分,你会破坏三个旧部分并创建三个新部分,以便玩家再次处于中心位置。

如何进行簿记取决于您。我能想到的一种方法是为所有动态加载的实体提供一个组件,以将它们识别为位于某个地图区域(Crafty.e("MapRegionIndexX" + mapX + "Y" + mapY))并存储这些组件相关的方式到二维数组中的 3x3 区域。一旦你移动到一个新的区域,你可以通过调用 Crafty("MapRegionIndex to be deleted").each(function(){this.destroy()}); 来删除旧的区域。

关于靠近边缘时滚动的问题,Crafty 可以自动将视口居中放在播放器上(检查 API),在 Crafty.viewport 中的功能。您可能可以通过使用跟随、平移、滚动、x 和/或 y 的功能来实现您想要的。

于 2013-12-20T20:03:03.063 回答