Jeux Libres
       
           

» Les Forums » Aide à propos de la création de jeux vidéo » collisions


Aller à la page : 1.

collisions




Visiteur
Ecrit le: 14 Mai 2010, 23:31             Message non corrigé

Bonjour à tous

Je suis en train de m'amuser à faire un petit shoot em up en opengl. Je suis actuellement en train de faire les fonctions de collisions. Pas trop de soucis du coté du principe, faire une boite, détecter la collision de 2 boites ...

Mon problème vient plutôt de la forme, comment mettre en place tout ça pour que ça soit efficace et modulable tout en restant simple à utiliser.

Pour l'instant j'ai fais la chose suivante :

J'ai crée une structure vaisseau :


struct Structure_vaisseau
{
struct Coordonnees_cartesiennes Position, Taille; //position et taille du vaisseau
struct Structure_bouclier Bouclier; //la structure bouclier contient un generateur de particule
double point_de_vie, point_de_bouclier; //point de vie du vaisseau et charge du bouclier
int *p_positionX, *p_positionY; //ces pointeurs vont servir a coupler les evenements au vaisseau
GLuint texture; //texture du vaisseau
struct Structure_box *p_Box; //pointeur sur une box pour les collisions
};

et la structure de la hitbox est la suivante :

struct Structure_box
{
struct Coordonnees_cartesiennes Position, Taille;
int type_objet, degats_subit, degat, collision;
};


Dans le main je déclare une variable de type structure_vaisseau et une autre de type structure_box puis j'initialise la variable Vaisseau de maniere a ce que son pointeur p_Box contienne l'adresse d'une hitbox.

struct Structure_box HitBox[NOMBRE_DE_BOX];
for(i = 0 ; i < NOMBRE_DE_BOX ; i++)
{collision_caracteristique_box(0, 0, &HitBox[i]);}

struct Structure_vaisseau Vaisseau;
vaisseau_init(&HitBox[0], &Vaisseau);


Ca fonctionne, mais ça ne me plais pas trop .... il faut définir le nombre de hitbox a l'avance, par la suite je sens que je vais m'embrouiller avec les indices (surtout quand je vais devoir créer une hitbox par projectile ...)

Quelqu'un aurait il une méthode pour attribuer une hitbox a chaque objet chargé sans devoir fournir l'indice, ce qui serait top : créer un tableau dynamique de hitbox et que chaque objet crée fasse une realloc pour ajouter la ou les cases qu'il va prendre. Mais le soucis c'est que je crois que ce n'est pas possible de connaitre la taille d'un tableau dynamique et que donc a moins de trimballer une variable en plus qui contiendrait le nombre de hitbox créée ce n'est pas possible.

Comment organiseriez vous ceci ?

Merci d'avance.
  Profil
 


Aller à la page : 1.


Hébergeur du site : David
Version PHP : 5.4.45-0+deb7u2
Uptime : 55 jours 19 heures 2 minutes
Espace libre : 1512 Mo
Dernière sauvegarde : 30/03/2020
Taille de la sauvegarde : 1113 Mo


5888938 pages ont été consultées sur le site !
Dont 2758 pages pendant les 24 dernières heures.

Page générée en 0.669 secondes


Nos sites préférés
- Création d'un jeu de plateforme de A à Z avec SDL
- Zelda ROTH : Jeux amateurs sur le thème de Zelda
- Zeste de Savoir : la connaissance pour tous et sans pépins
- YunoHost : s'héberger soi-même en toute simplicité
- Site de Fvirtman : recueil de projets et de codes en C et C++
- Par ici la sortie : le site des idées de sorties


  © 2005-2020 linor.fr - Toute reproduction totale ou partielle du contenu de ce site est strictement interdite.