Estou trabalhando em um jogo 2D onde você pode mover para cima, baixo, esquerda e direita. Eu tenho essencialmente dois objetos de lógica de jogo:
- Jogador: Tem uma posição em relação ao mundo
- Mundo: desenha o mapa e o jogador
Até agora, o mundo depende do jogador (ou seja, tem uma referência a ele), precisando de sua posição para descobrir onde desenhar o personagem do jogador e qual parte do mapa desenhar.
Agora, quero adicionar a detecção de colisão para tornar impossível o jogador se mover através das paredes.
A maneira mais simples de pensar é pedir ao jogador que pergunte ao mundo se o movimento pretendido é possível. Mas isso introduziria uma dependência circular entre o Player e o World (ou seja, cada um mantém uma referência ao outro), o que parece evitar. A única maneira de inventar é fazer o mundo mover o jogador , mas acho isso pouco intuitivo.
Qual é minha melhor opção? Ou evitar uma dependência circular não vale a pena?