Bonsoir, je suis en train de crer un jeu 2D simulant la 3D aussi appelé raycasting. JE viens de créer la map en 2D, je l'affiche correctement avec draw_minimap.
Maintenant, je suis un tuto pour pouvoir déplacer mon player correctement selon l'angle de vue, je n'ai aucun problème dès le lancement du programme pour reculer ou avancer definit par TOP et BOTTOM dans mon code, mais dès lors que je change l'angle de vue avec les flèches de gauche et droite definit par LEFT et RIGHT dans mon code, mon player ne se déplace plus correctement lorsque je recule et j'arrive pas à comprendre pourquoi!!
Aussi, outre ce problème, j'en ai un autre mais plus minime, lorsque mon angle de vue est diagonal, mon player n'avance pas correctement en diagonale il avance en escalier si vous voyez ce que je veux dire et là aussi je comprend pas pourquoi même si je pense que cela viens des double que j'utilise et que je les cast mal sans doute
Lorsque vous changez l'angle de vue avec les touches gauche et droite, vous modifiez la variable data->player.view_direction. Cependant, vous ne mettez pas à jour la variable data->player.rotation_angle, qui est utilisée pour calculer les coordonnées du rayon de chaque colonne lors du lancement du raycasting. Assurez-vous que data->player.rotation_angle est correctement mis à jour lorsque vous modifiez data->player.view_direction.
Lorsque vous avancez en diagonale, il est normal que le mouvement ne soit pas fluide, car vous ne déplacez pas le joueur d'une distance constante à chaque fois. Si vous voulez un mouvement fluide en diagonale, vous devez diviser le déplacement en deux mouvements séparés : un mouvement horizontal suivi d'un mouvement vertical (ou vice versa). Par exemple, si le joueur doit avancer d'une distance de 1 à la fois, vous pouvez diviser le mouvement en un déplacement horizontal de 0,7 (1/sqrt(2)) suivi d'un déplacement vertical de 0,7.
Assurez-vous également que vous calculez correctement les coordonnées du joueur et du rayon en fonction de l'angle de vue. Si vous avez des problèmes avec des valeurs flottantes, il est possible que le problème soit dû à des erreurs d'arrondi. Essayez d'utiliser des fonctions telles que round() ou floor() pour arrondir les valeurs à des entiers si nécessaire.
Hello, World !
Aide concernant angle de vue, jeu 2d-3d
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Hello, World !