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

Développement 2D, 3D et Jeux Discussion :

Détermination d'un obstacle / visibilité


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Détermination d'un obstacle / visibilité
    Bonjour à tous,

    A titre personnel, je travaille actuellement sur un projet de jeu par navigateur web et je ne sais pas s'il existe un algorithme générique permettant la détection d'obstacle sur une grille donnée.

    Concrètement, j'ai une unité qui attaque et qui a une certaine portée, ainsi qu'une unité cible. Le tout étant que l'unité attaquante ne puisse lancer son attaque que s'il n'y a pas d'obstacle entre elle et sa cible.

    Existe-t-il un algorithme simple pour résoudre ce problème ?

    Pour information, le plateau de jeu est de dimension réduite (grand maximum 20x20 et les portées à l'avenant, disons 5 cases maximum)

    Merci beaucoup !

  2. #2
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    salut,

    je pense que la façon la plus simple de faire serait que ton code trace une 'ligne virtuelle' entre le tireur et la cible afin de connaître l'ensemble des cases que le projectile traversera. Ensuite, pour chacune des cases, tu peux vérifier si c'est un obstacle ou pas.

    Pour un algo en particulier pour le 'traçage de ligne virtuel', tu peux par exemple te baser sur l'algo de Bresenham.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci pour le tuyau. C'est ce que j'avais déjà trouvé sur la question, mais je vais essayer d'optimiser ça, si c'est possible, pour des zones restreintes.

  4. #4
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    Pour l'optimisation de ce genre de tache, les algorithmes de partitionnement de l'espace sont trés efficaces. Mais peut-être que ton plateau de jeux est trés petit et qu'un algorithme bourrin suffit.

Discussions similaires

  1. Comment déterminer si une droite rencontre un obstacle
    Par touftouf57 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 29/10/2010, 09h37
  2. Détermination d'un obstacle
    Par Greg L. dans le forum Intelligence artificielle
    Réponses: 2
    Dernier message: 02/03/2010, 09h42
  3. Déterminer le CPUID
    Par ZuZu dans le forum Assembleur
    Réponses: 9
    Dernier message: 21/05/2008, 13h09
  4. [ActiveX] Visibilité d'une propriété
    Par paradise dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2002, 18h33
  5. Déterminer l'adresse d'une application en mémoire
    Par Gib dans le forum x86 32-bits / 64-bits
    Réponses: 9
    Dernier message: 11/06/2002, 14h27

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