Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > Moteurs de jeux vidéo > XNA
XNA Forum d'entraide sur le développement avec XNA
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/10/2012, 18h35   #1
Seth77
Membre éclairé
 
Avatar de Seth77
 
Homme
Développeur .NET
Inscription : octobre 2005
Messages : 1 330
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : octobre 2005
Messages : 1 330
Points : 359
Points : 359
Par défaut Gestion de vague d ennemis

Salut

Comment doit on gerer les vagues d ennemis .. j ai essayer avec un timer mais cela fait ralentir l ensemble

Merci d avance
Seth77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 09h42   #2
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 443
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 443
Points : 40 264
Points : 40 264
Bonjour,

Pouvez vous être plus précis ?
Parlez vous du spawn des ennemies par vague et de la gestion de déplacement par la vague ?
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 09h58   #3
Seth77
Membre éclairé
 
Avatar de Seth77
 
Homme
Développeur .NET
Inscription : octobre 2005
Messages : 1 330
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : octobre 2005
Messages : 1 330
Points : 359
Points : 359
Surtout du spawn des ennemis ; mais les deux m interesse.

J ai mis un Timer en place qui toutes les n secondes genere des nouveaux ennemis.

Comment peut on optimiser la gestion des collisions entre les projectiles et les ennemis ? pour le moment je gere cela dans l Update des projectiles qui verifie si ils intersect avec les ennemis.

Seth77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 12h53   #4
saturn1
Membre confirmé
 
Inscription : janvier 2008
Messages : 576
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 576
Points : 258
Points : 258
Tu spawn combien d'ennemis c'est sur que la gestion des collisions ca peut ralentir.
saturn1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 13h12   #5
Seth77
Membre éclairé
 
Avatar de Seth77
 
Homme
Développeur .NET
Inscription : octobre 2005
Messages : 1 330
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : octobre 2005
Messages : 1 330
Points : 359
Points : 359
Pour le moment 1 par seconde...
Seth77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 13h20   #6
saturn1
Membre confirmé
 
Inscription : janvier 2008
Messages : 576
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 576
Points : 258
Points : 258
Et comment tu fais ta gestion de collision?
saturn1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 13h25   #7
Seth77
Membre éclairé
 
Avatar de Seth77
 
Homme
Développeur .NET
Inscription : octobre 2005
Messages : 1 330
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : octobre 2005
Messages : 1 330
Points : 359
Points : 359
J ai une liste avec tout les ennemis et dans l objet projectile je vérifie si il n intersect pas avec l un des objets "ennemis"
Seth77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 14h11   #8
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 443
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 443
Points : 40 264
Points : 40 264
Combien y a t-il d'éléments lorsque cela rame ?
Sinon, pour les optimisations de collisions, on utilise de la hiérarchisation de l'espace (Space partitionning), dans le genre, il existe le quad tree, ou le binary space partitionning (BSP).
Cela permet d'éviter de faire des tests, en testant que les éléments proches ou dans un zone précise.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 14h21   #9
Seth77
Membre éclairé
 
Avatar de Seth77
 
Homme
Développeur .NET
Inscription : octobre 2005
Messages : 1 330
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : octobre 2005
Messages : 1 330
Points : 359
Points : 359
cela rame des que je tire ; il doit y avoir ~20 objets pour tout (enemis,projectiles, etc...)
Seth77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 15h42   #10
saturn1
Membre confirmé
 
Inscription : janvier 2008
Messages : 576
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 576
Points : 258
Points : 258
Si tu as 20 ennemis et 20 projectiles ca fait deja 400 check de collision deja.

Tu ne fais pas un test de collision pixel perfect?
saturn1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 22h39   #11
Seth77
Membre éclairé
 
Avatar de Seth77
 
Homme
Développeur .NET
Inscription : octobre 2005
Messages : 1 330
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : octobre 2005
Messages : 1 330
Points : 359
Points : 359
Citation:
Envoyé par saturn1 Voir le message
Si tu as 20 ennemis et 20 projectiles ca fait deja 400 check de collision deja.

Tu ne fais pas un test de collision pixel perfect?


Je suis un noob en dev de jeux ... c est quoi le pixel perfect ?
Seth77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2012, 11h44   #12
saturn1
Membre confirmé
 
Inscription : janvier 2008
Messages : 576
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 576
Points : 258
Points : 258
Une technique de collision plutôt lente...

Si tu fais du xna tu peux essayer de regarder par exemple le moteur physique farseer. Sauf si tu tiens a tout contrôler.
saturn1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2012, 13h42   #13
MoDDiB
Membre chevronné
 
Homme
Développeur de jeux vidéo
Inscription : février 2006
Messages : 451
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2006
Messages : 451
Points : 698
Points : 698
Citation:
Envoyé par Seth77 Voir le message

Je suis un noob en dev de jeux ... c est quoi le pixel perfect ?
Quel est ton bout de code qui teste les collisions ?
__________________
Suivez le développement de Chibis Bomba
twitter : https://twitter.com/MoD_DiB
DevBlog : http://moddib.blogspot.fr/
MoDDiB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2012, 23h07   #14
Seth77
Membre éclairé
 
Avatar de Seth77
 
Homme
Développeur .NET
Inscription : octobre 2005
Messages : 1 330
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : octobre 2005
Messages : 1 330
Points : 359
Points : 359
Citation:
Envoyé par MoDDiB Voir le message
Quel est ton bout de code qui teste les collisions ?
Voici mon bout de code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
public override void Update(GameTime gameTime)
        {
            VectorPosition += Direction * Speed;
 
            IList<IGameObject> list = LayerManager.Instance.GetObjects("Bullet");
            foreach (IGameObject item in list)
            {
                Rectangle r = new Rectangle((int)item.Position.X, (int)item.Position.Y, item.HitBox.Width, item.HitBox.Height);
                bool res = HitBox.Intersects(r);
                if (res)
                {
                    item.Alive = false;
                    this.Alive = false;
                    break;
                }
 
                Debug.WriteLine(res);
            }
 
            base.Update(gameTime);
        }
Seth77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 09h18   #15
Djakisback
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 913
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 913
Points : 1 840
Points : 1 840
La première question c'est : est-ce que ça rame si tu vires le test de collision ?
__________________
Vive les roues en pierre
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 09h29   #16
MoDDiB
Membre chevronné
 
Homme
Développeur de jeux vidéo
Inscription : février 2006
Messages : 451
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2006
Messages : 451
Points : 698
Points : 698
Faire ceci pour chaque sur chaque bullet me semble gourmand : IList<IGameObject> list = LayerManager.Instance.GetObjects("Bullet");
dans la mesure où je suis certains que GetObjects parcours tous les éléments du monde.
Le plus simple serait de gérer les collisions dans un manager afin d'éviter ça.
Mais sinon mis à part si ton HitBox.Intersects(r); est super lourd ton bout de code ne devrait pas ralentir tant que ca pour 20 éléments.
Tu ne testerai pas ton projet avec visual attaché et donc ca ne ramera plus une fois que tu auras viré cette ligne :
Debug.WriteLine(res);
?
__________________
Suivez le développement de Chibis Bomba
twitter : https://twitter.com/MoD_DiB
DevBlog : http://moddib.blogspot.fr/
MoDDiB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h31.


 
 
 
 
Partenaires

Hébergement Web