IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Physique Discussion :

Space invaders : déterminer le tireur


Sujet :

Physique

  1. #1
    Membre actif
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 211
    Points
    211
    Par défaut Space invaders : déterminer le tireur
    Bonjour à tous,

    Je développe un space invaders.
    J'ai un souci pour déterminer quel invader doit tirer.

    Voila comment je procède:
    -Je détermine la plage des invaders pouvant tirer
    ex:
    Si une armée d'invaders comprend 30 invaders avec 10 invaders par lignes (vector allant de 0 à 29) alors seuls les invaders de la troisième ligne peuvent tirer. La plage est donc [20, 29]. Si le joueur touche les invaders 20 et 10 alors la plage est [0, 29]. Si le 0 et le 29 sont détruits à leur tour la plage est [1, 28] et ainsi de suite.
    -Je tire un nombre aléatoirement dans cette plage,
    -Je fais tirer l'invader tiré au sort.

    Mon problème est que pour déterminer le tireur sur une plage de 9 cela va très vite, mais si la plage est de 30 (tous les invaders ne pouvant pas tirer car il y a un autre invader en dessous d'eux, seuls ceux sans un autre invader dessous peuvent tirer, cela créé des "déchets") cela est bcp plus long.

    J'ai donc mis en place une tempo qui fait que plus la plage est élevée plus la fonction pour tirer un invader au sort est appelée. Mais ce système n'est pas correct car difficile de trouver un équilibre satisfaisant qui permette d'avoir une cadence de tir à peu près semblable suivant la taille de la plage.

    Peut être que déterminer aléatoirement le tireur n'est pas correct ?
    Avez-vous une solution ?

    Voila j'espère avoir été clair.

    merci d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    J'ai l'impression qu'il y a plein de solution possible.

    Dans celle ci, je vois, l'utilisation dans tableaux à doubles dimensions ( bon on perd les vecteurs, donc pas très bien ).
    La bonne solution ( pour moi ) serait de garder la position de chaque invaders dans la classe ( enfin, avec lui ). Comme ça, un simple parcours du vecteur permet de déterminer s'il y en a un en dessous .

    Il doit y avoir des solutions encore mieux . Genre un flag, pour dire que l'invader est sur la ligne pouvant tiré ( enfin, qu'il y a rien en dessous ).
    Un parcours, permettant de recrée une liste de tireur, basé sur leurs positions ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre actif
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 211
    Points
    211
    Par défaut
    Bonjour et merci pour ta réponse.

    J'utilise un flag pour savoir si l'invader peut tirer ou non comme tu l'indiques.
    Mais si l'invader en position 0 et celui en position 29 peuvent tirer alors la plage pour déterminer aléatoirement le tireur va de 0 à 29. Dans ce cas il y aura un paquet d'invaders qui ne pourront pas tirer mais être potentiellement désigner tireur par le tirage au sort.

    Pour le moment la solution que j'utilise c'est de garder tjs la même plage (0, 29).
    Puis si 5 invaders sont détruits alors je réduis le temps d'appel pour la fonction de tirage au sort et ainsi de suite. Ça permet de conserver une bonne cohérence entre les différentes cadences de tir suivant le nombre d' invaders pouvant tirer mais bon c'est pas génial non plus.

    Un parcours, permettant de recrée une liste de tireur, basé sur leurs positions ...
    Je vais creuser cette idée.

    a+

  4. #4
    Membre actif
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Points : 211
    Points
    211
    Par défaut
    J'ai trouvé la solution.

    Je rempli un vector avec l'indice de tous les invaders pouvant tirer.
    Je tire au sort un nombre allant de 0 à la taille du vector-1.
    Puis je fais: Tireur = Vector[NombreAleatoire]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programmer un jeu (space invader) avec Java Micro Edition
    Par Alain Defrance dans le forum Java ME
    Réponses: 5
    Dernier message: 16/06/2009, 21h21
  2. [ASSEMBLEUR] Space Invader
    Par Niounter dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 08/01/2009, 15h23
  3. [SDL/C]Projets Space Invaders
    Par jul681 dans le forum SDL
    Réponses: 12
    Dernier message: 18/07/2008, 06h34
  4. Space Invader : pb plusieurs missiles à l'écran
    Par Bundy*Al dans le forum Développement 2D, 3D et Jeux
    Réponses: 11
    Dernier message: 19/10/2007, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo