Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Comment faire des collisions propres?  (Lu 2320 fois)

0 Membres et 1 Invité sur ce sujet

yhu420

  • Jr. Member
  • **
  • Messages: 75
    • Voir le profil
    • E-mail
Comment faire des collisions propres?
« le: Avril 27, 2014, 03:11:21 pm »
Bonjour tout le monde,
je suis en plein dans un petit projet et je me retrouve face à un problème: je dois gérer PLEIN de collisions. Alors vous me direz c'est tout simple il faut utiliser contains(arg) et le tour est joué, oui mais alors ca veut dire que, à chaque frame, je dois re-calculer toutes les collisions possibles entre tous les objets à l'écran?  ???
Je pense pas que ce soit très propre et j'imagine pas les performances pourries que je vais avoir avec ça..
Donc ma question c'est: C'est quoi la structure ou le truc, pour faire des collisions bien comme il faut?
Merci  ;)

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Comment faire des collisions propres?
« Réponse #1 le: Avril 27, 2014, 03:18:57 pm »
En gros oui mais...
T'es pas obligé de calculer les collisions avec TOUS les objets. Par exemple si t'utilises une tilemap, tu peux facilement te permettre de ne calculer les collisions entre un personnage et la dizaine de tiles qui l'entoure. Tu as aussi des techniques de partitionnement (quadtree par exemple) plus avancées où tu ne testes un objet qu'avec ceux qui sont dans une même zone.

De toutes façons commence simple et regarde les perfs. ;)

yhu420

  • Jr. Member
  • **
  • Messages: 75
    • Voir le profil
    • E-mail
Re : Comment faire des collisions propres?
« Réponse #2 le: Avril 27, 2014, 03:28:05 pm »
En fait j'utilise pas un tilemap je fais pas un rpg si tu veux c'est plus un shoot em up et donc par exemple si je tire 30 balles à l'écran, et il y a 1 ennemi, il va falloir qu'à chaque frame toutes les 30 balles vérifient la collision avec tous les ennemis? ça veut dire que si ya 2 ennemis ca prend 2 fois plus de temps etc..
je me posais juste la question de savoir si y'avait une methode plus simple.
Merci pour ta réponse rapide  ;D

 

anything