| [c++] gérer collisions simple | |
|
|
Auteur | Message |
---|
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: [c++] gérer collisions simple Mar 24 Avr 2012 - 15:36 | |
| Voila des fichiers permettant de gérer les collisions simple en c++. Il donne 3 classe que sont les rectangles (AABB) , les lignes et les points. Il offre une fonction qui dit si les deux classes passés en argument sont en collision. bool isCollision( rectangle r1, rectangle r2); bool isCollision( rectangle r, point p); bool isCollision( point p, rectangle r); bool isCollision( rectangle r, line l); bool isCollision( line l, rectangle r); bool isCollision( line l1, line l2); C'est basique, mais c'est amplement suffisant pour n'importe quel jeu de plate-forme. Télécharger |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: [c++] gérer collisions simple Mar 24 Avr 2012 - 15:48 | |
| Ça me rappelle bigrement le SdZ ça :p |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: [c++] gérer collisions simple Mar 24 Avr 2012 - 16:01 | |
| Tu parle de ceci je pense. (tuto sympa en passant) En faite, ces fichiers sont directement issus du jeu que je présente pour la compète 2012. |
|
| |
Morwenn Très bonne participation
Messages : 151 Projet Actuel : Icare
| Sujet: Re: [c++] gérer collisions simple Mar 24 Avr 2012 - 23:59 | |
| Marrant, j'avais fait des trucs comme ça il y a longtemps^^ Pour le fun, j'ai rajouté les détections de collisions avec des cercles. Ceci dit, ce n'est probablement pas optimisé : http://www.mediafire.com/?kahilg8zdfanvpdLogiquement, tu peux t'amuser à calculer énormément de types de collisions différentes si tu rentres là-dedans. Mais c'est clair que les collisions carrées sont de loin les plus rapides. |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: [c++] gérer collisions simple Mer 25 Avr 2012 - 18:48 | |
| Enfin, je poste cela parceque j'ai toujours considérer que la différence entre game maker et le c++(+SFML) , c'était la gestion des collisions. C'est quand même bien pratique la collision pixel-perfect avec GM. Faire un jeu sans, c'est pas évident. |
|
| |
Oculus Utilisateur confirmé: Rang *****
Messages : 1688
| Sujet: Re: [c++] gérer collisions simple Mer 25 Avr 2012 - 20:21 | |
| Ce n'est pas si dur à gérer les collisions pixel perfect, ce qui différencie vraiment GM d'un autre langage c'est le système d'id et tout mais ce n'est pas si du à faire. |
|
| |
Morwenn Très bonne participation
Messages : 151 Projet Actuel : Icare
| Sujet: Re: [c++] gérer collisions simple Mer 25 Avr 2012 - 21:13 | |
| Bah, globalement, les id, ça se remplace très bien par des adresses mémoires et donc en utilisant des pointeurs en C/C++ ou en se rendant compte que chaque objet en a une aussi (adresse la encore) en Java ou d'autres langages objets.
Moi je dis, ce qui diffère GM du reste, c'est qu'il y a beaucoup de trucs préconstruits, notamment avec les maps, et qu'il stocke tout seul les listes des id des instances présentes sur la map, ce qui permet l'apparition du très utile mot-clef with là où on aurait eu à stocker soi-même en C++ :p |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: [c++] gérer collisions simple Jeu 26 Avr 2012 - 18:22 | |
| ça me rappel un code que j'avais fait en c++ - Code:
-
screen.Clear(Color(0,0,0)); WITHALL(it) { (*it)->step(); } WITHALL(it) { (*it)->calculerProfondeur(); } objList.sort(objProfondeurCompare); WITHALL(it) { (*it)->draw(); } screen.Display();
Ce qui me permettait d'utiliser une sorte de WITH Tout les objets dérive (directement ou indirectement) de la class objet et puis un petit define: - Code:
-
#define WITHALL(ARG) for(list<objet*>::iterator ARG=objList.begin(); ARG!=objList.end() ; ++ARG) |
|
| |
Contenu sponsorisé
| Sujet: Re: [c++] gérer collisions simple | |
| |
|
| |
| [c++] gérer collisions simple | |
|