Movimento de botão

Olá, eu estou fazendo um joguinho de labirinto, e meu problema é que não sei como impedir que o componente que estou usando como personagem, atravesse as paredes do cenário. Já procurei na internet, mas ainda não encontrei nada, alguém saberia como me ajudar?

Sem saber como você representa seu labirinto, fica difícil sugerir qualquer coisa.

Um jeito simples seria fazer um grid usando uma matriz, como num tabuleiro de damas. Algo como:

[
[ 1, 3, 0, 1, 0, 1 ]
[ 1, 0, 0, 1, 0, 1 ]
[ 1, 1, 0, 1, 0, 1 ]
[ 1, 0, 0, 0, 0, 1 ]
[ 1, 0, 1, 1, 0, 1 ]
[ 1, 1, 2, 0, 0, 1 ]
]

Os números 0 representam caminhos válidos. Os números 1 representam paredes. 2 e 3 são início e fim respectivamente. Para verificar se um movimento é válido, veja se a próxima posição é igual a 0.

Se as paredes do seu labirinto tem posições que não podem ser representadas por um grid, terá que implementar algum mecanismo de detecção de colisão.

Abraço.