Atualmente, estou trabalhando em A * pathfinding em uma grade e estou procurando suavizar o caminho gerado, considerando também a extensão do personagem se movendo ao longo dele. Estou usando uma grade para encontrar o caminho, no entanto, o movimento do personagem é de roaming gratuito, não o movimento estrito de ladrilhos para ladrilhos.
Para obter um caminho mais suave e eficiente, estou traçando linhas em uma grade para determinar se há peças imersas entre peças para raspar cantos desnecessários.
No entanto, como um rastreamento de linha é de extensão zero, ele não considera a extensão do caractere e produz resultados ruins (não retornando blocos não-passíveis de passagem perdidos pela linha, causando colisões indesejadas).
Então, o que estou procurando é, em vez de um algoritmo de linha que determina os blocos embaixo dele, estou procurando um que determine os blocos sob uma linha de extensão de bloco inteiro. Aqui está uma imagem para ajudar a visualizar o meu problema!
Alguém tem alguma idéia? Eu tenho trabalhado com a linha de Bresenham e outras alternativas, mas ainda não descobri como resolver esse problema específico.