在过去的几天里,我在这里做了:
https://github.com/PerduGames/SoftNoise-GDScript-
现在我可以生成我的“无限”地图,但是当玩家在 Godot(GDScript) 中的 2D 场景中移动时,我在处理仅生成部分地图时遇到了问题。
我正在尝试在瓷砖地图中绘制玩家周围的区域。使用此功能,我占据了玩家的位置:
func check_posChunk(var _posChunk, var _posPlayer):
var pos = $"../TileMap".world_to_map(_posPlayer)
for i in range(0, mapSize, 16):
if pos >= Vector2(i, i) && pos <= Vector2(i + 16, i + 16):
if pos.x > pos.y:
_posChunk = Vector2(i, i) - Vector2(32, 48)
else:
_posChunk = Vector2(i, i) - Vector2(16, 16)
break
return _posChunk
我将位置存储在变量“posChunk”中并在这里绘制:
func redor(var posPlayer):
posChunk = check_posChunk(posChunk, posPlayer)
for x in range(64):
for y in range(64):
$"../TileMap".set_cell(posChunk.x + x, posChunk.y + y, biomes(elevation_array[posChunk.x + x][posChunk.y + y], umidade_array[posChunk.x + x][posChunk.y + y]))
我可以在 x < y 和 x == y 时在播放器周围绘制,但是当 x > y 时,会出现并发症,因此在这里,即使我检查了上面的情况 if,有些情况下它不会按预期绘制: