Нарисуйте плитку вокруг игрока

В последние дни я сделал это здесь:

https://github.com/PerduGames/SoftNoise-GDScript-

и теперь я могу генерировать свои "бесконечные" карты, однако у меня есть проблемы, связанные с генерацией только его частей, когда игрок перемещается в 2D-сценарии в Godot(GDScript).

Я пытаюсь нарисовать область вокруг игрока в тайлекарте. С помощью этой функции я беру позицию игрока:

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, возникают осложнения, из-за этого здесь, хотя я проверяю ситуацию в приведенном выше случае, если есть случаи, когда это не будет покрасить как положено:

https://github.com/godotengine/godot/issues/9284

1 ответ

Как правильно обрабатывать сравнение с Vector2?

Я смог найти ответ на этот случай, ответил на другом форуме, сравнивая Vector2, было бы не лучшим способом сделать это, используя Rect2 (получите два Vector2, первый параметр - позиция, а второй - размер), который вы можете проверить. если игрок находится внутри коробки, то происходит следующий код:

https://godotengine.org/qa/17982/how-to-compare-two-rect2?show=17994

#Verify that the pos that is the player's position 
#is inside the rect_chunk rectangle with the has_point function of Rect2.

var rect_chunk = Rect2(Vector2(i, i), Vector2(16, 16))
if(rect_chunk).has_point(pos)):
Другие вопросы по тегам