AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 [c++] gérer collisions simple

Aller en bas 
AuteurMessage
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1472
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[c++] gérer collisions simple Empty
MessageSujet: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyMar 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

_________________
[c++] gérer collisions simple Pochette[c++] gérer collisions simple Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z

Messages : 1611
Localisation : Montpellier

[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyMar 24 Avr 2012 - 15:48

Ça me rappelle bigrement le SdZ ça :p

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1472
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyMar 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.




_________________
[c++] gérer collisions simple Pochette[c++] gérer collisions simple Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Morwenn
Très bonne participation
Morwenn

Messages : 151
Projet Actuel : Icare

[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyMar 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é : mediafire.com ?kahilg8zdfanvpd

Logiquement, 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.

_________________
[c++] gérer collisions simple 37115040594310152086589335317875357842n
Dur Dabla, pour qui voudrait écouter un brin de metal celtique.
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1472
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyMer 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.

_________________
[c++] gérer collisions simple Pochette[c++] gérer collisions simple Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Oculus
Utilisateur confirmé: Rang *****


Messages : 1688

[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyMer 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.
Revenir en haut Aller en bas
Morwenn
Très bonne participation
Morwenn

Messages : 151
Projet Actuel : Icare

[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyMer 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

_________________
[c++] gérer collisions simple 37115040594310152086589335317875357842n
Dur Dabla, pour qui voudrait écouter un brin de metal celtique.
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro

Messages : 1472
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple EmptyJeu 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)

_________________
[c++] gérer collisions simple Pochette[c++] gérer collisions simple Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Contenu sponsorisé




[c++] gérer collisions simple Empty
MessageSujet: Re: [c++] gérer collisions simple   [c++] gérer collisions simple Empty

Revenir en haut Aller en bas
 
[c++] gérer collisions simple
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: