J'ai de la difficulté à apprendre la détection de collision par l'expérience. Je fais un jeu de boîtes, à la Minecraft, et je suis au stade de la mise en œuvre de la détection des collisions. J'ai fait les axes x et y, puisque tout est composé de cubes, je voudrais faire mon propre détecteur de collision et le rendre aussi léger que possible.Détection de collision 3D parfaite C++
Existe-t-il un moyen de réaliser des collisions «parfaites au pixel près», c'est-à-dire lorsque la boîte englobante (ou le cercle) du joueur touche une boîte enregistrée comme collision? En ce moment, ce que je l'ai fait:
if(-TOUCH_DISTANCE-1 < yPlayer-yBox && yPlayer-yBox < TOUCH_DISTANCE-1)
{
collisionNorth = true;
}
if(-TOUCH_DISTANCE+1 < yPlayer-yBox && yPlayer-yBox < TOUCH_DISTANCE+1)
{
collisionSouth = true;
}
Il détecte essentiellement la collision dans une certaine marge et cela signifie que des erreurs, que je n'aime pas :(Notez que le +/- 1 qui compense le « mur de collision. Cela fonctionne, à basse vitesse, mais une fois qu'il y a une action (quand je casse la variable de vitesse), la collision ne peut plus être détectée car je vais trop vite et je passe à droite. à travers le cube ... Y a-t-il un moyen de le prouver à wallhax0r?
Ceci est particulièrement gênant sur l'axe z, lorsque le joueur tombe à grande vitesse et même au moment de définir une marge de collision respectable, il aura l'air méchant (joueur à moitié enterré).
Eh bien, il y a 2 jours de code. Non seulement un modèle continu est exact, mais c'est moins cher aussi (dans ce cas). – Solenoid