Recentemente, peguei o monogame e estou trabalhando em um jogo simples de cima para baixo para começar e aprender o básico.
Eu tenho o movimento e a rotação para seguir o mouse, mas estou preso às colisões.
O que eu quero saber, basicamente, são duas coisas:
- Qual seria a melhor maneira de lidar com colisões? Eu sei que
Rectangle.Intersects(Rectangle1, Rectangle2)
retorna o retângulo sobreposto, mas, como o movimento de cima para baixo está no eixo x / y, eu gostaria de saber onde a colisão está acontecendo, para que eu possa criar um tipo de "deslizamento de parede" onde o jogador não consegue preso na parede.
Verificar as coordenadas x / y dos jogadores em relação às coordenadas de objetos sólidos e depois jogar o jogador na posição anterior se ele entrar nos limites de um objeto sólido é realmente a melhor abordagem? O que você sugeriria? - Qual seria a melhor maneira de aplicar colisões a todos os sólidos, npc's etc.? Atualmente, estou pensando em criar uma
gameObject
classe da qual todos os objetos herdarão e manipularão as colisões ali.
Obrigado pela leitura e espero que alguém possa me dar algumas dicas.