我是Phaser的新手,我现在很难在phaser等距插件的帮助下生成一个tilemap。我也很难理解与Phaser世界,游戏和相机相关的一些概念,这些概念使得更正确地生成tilemap的一部分。我实际上已经注意到这个问题似乎是Phaser新手的障碍,就像我一样,如果正确解释它肯定有助于对抗这一点。
谈及此事:
我使用单个草精灵使用 for循环生成了一个tilemap。 for循环工作正常,我还实现了一个函数,我可以指定我想要生成的tile数。
{
spawnBasicTiles: function(half_tile_width, half_tile_height, size_x, size_y) {
var tile;
for(var xx = 0; xx < size_x; xx += half_tile_width) {
for(var yy = 0; yy < size_y; yy += half_tile_height) {
tile = game.add.isoSprite(xx, yy, 0, 'tile', 0, tiles_group);
tile.checkWorldBounds = true;
tile.outOfBoundsKill = true;
tile.anchor.set(0.5, 0);
}
}
}
}
因此,生成静态草砖的过程不是问题。问题,以及我试图让对象池正常工作的原因之一是当磁贴数量超过80时,这对游戏性能产生了巨大影响。由于我的目标是制作巨大的自动生成地图,这些地图根据玩家角色位置进行渲染,因此对象池是必不可少的。我已经为这些图块创建了一个组,并添加了我认为将不需要渲染的图块(物理,世界边界......)所需的属性。然而,经过多次尝试,我得出的结论是,即使是超出界限的瓷砖仍然会产生。我还使用了另一个属性而不是add.isoSprite来生成tile,这是 .create 但没有区别。我想没有任何瓷砖被杀死#34;
除此之外,我希望在世界中间生成我的角色,这是生成的草图块的中间。但是,我也很难做到这一点。我认为,为了达到这个目的,我应该使用以下概念,尽管不能:
总结: 使用以下用于生成切片的循环方法,如何在跟随我的角色的相机移动到另一个区域时生成无限/几乎无限的地图?除此之外,在生成的草地图中间始终生成角色的正确方法是什么,以及相机从角色的起点开始?
我将非常感谢他们的帮助,并希望这对于处于类似情况的人来说可能是有价值的。对于任何额外的信息,只需询问,如果您想要按特定数字生成图块的功能,我很乐意发布。对不起任何语言错误。
非常感谢。
修改
通过将X和Y设置为(大小/宽度)和(大小/高度),我能够始终在草中间生成我的角色。大小是px中X和Y的度量。