casse_brique - C++ - Programmation
Marsh Posté le 19-10-2008 à 19:54:36
Dans un projet, je devais déplacer des agents (que l'on pourrait comparer à ta balle) et gérer les collisions. Comme j'étais dans un univers discret (Matrice 2D) la vitesse me posais les même pb que toi enfin je pense. L'agent en avançant de 3 cases en un seul pas de temps traversait les autres sans s'en rendre compte. Pour rectifier cela j'ai divisé le temps. J'ai utilisé des coordonnées réelles en plus des coordonnées discrètes.
Par exemple si la vitesse était au maximum de 3, j'ai divisé le temps en trois phases et du coup chaque agent n'avance au maximum que d'une case par phase. Celui placé en x et qui avançait de 2 cases par pas de temps avance de 2/3 cases à chaque phase. C'est à dire de 0 cases la première phase (x+0.6666666) de 1 à la 2eme phase (x+1.33333333) et encore d'une la phase suivante (x+2).
Je suppose qu'il existe d'autres méthodes mais celle-ci fonctionne et les chercheurs pour qui je travaillais semblaient contents.
Pourquoi parles-tu de 4 cases autour de la boule? il n'y en a pas 8?
Marsh Posté le 30-10-2008 à 22:06:17
ben pourquoi ne pas simplement faire des calculs (dans le domaine des réels) avec les coordonnées des segments constituants les briques et celui de la trajectoire de ta boule entre l'instant t et t+dt ??
ce sera un peu plus lourd, mais tu auras l'avantage de ne pas avoir une discrétisation du problème ..., et puis ce n'est pas méga lourd non plus
Marsh Posté le 19-10-2008 à 15:27:21
bonjour,
je suis en train de programmer un casse brique et j'ai des difficultés pour programmer les rebonds entre la boule et les briques.
en fait j'utilise une matrice pour placer mes briques à l'écran et pour définir les rebonds je vérifie les 4 cases autour de la boule à tout instant afin de supprimer les briques potentiellement présentes. Cependant dès que la boule accélère, la boule rebondi mal, et j'ai des défauts génants. je voudrais savoir si il y avait une autre méthode plus efficace que celle ci.
merci!
---------------
Pierre