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

Algorithmes et structures de données Discussion :

Soucis avec les collisions (jeu)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Par défaut Soucis avec les collisions (jeu)
    Bonjour à tous !

    Je suis sur le développement de mon jeu et j'ai un petit soucis avec les collisions. Je m'explique :

    Je charge un fichier qui contient le nom,la largeur et longueur du tilesheet (grande image que je découpe en tableau). Puis, je crée dynamiquement 2 tableaux à 2 dymensions dynamiquement. L'un est un tableau d'entier (numéro image), et l'autre un tableau de booléen (case passable / non passable).

    Lorsqu'un joueur / monstre ce déplace, il test si il change de case, si oui, il test si la case de destination est passable. Celon le cas il avance ou non.

    Maintenant, ce que j'essaye de faire c'est de gérer les collisions entre les entités (monstres, personnage). Les monstres bougent d'eux même aléatoirement (bientot avec un algo de pathfind "A*"). Le personnage ce deplace celon l'evenement clavier.

    J'ai fais que lorsque le joueur change de case, l'ancienne case devienne passable et la nouvelle non. Ce qui permet aux autres entités de passer ou non.

    Mon problème est le suivant :
    Lorsque une entité bouge, et qu'elle est sur une case, tout ce passe bien, mais le soucis c'est que les entités bougent en pixel et ma carte est en case. Du coup, lorsque le personnage ce trouve entre 2 cases, je n'arrive pas à blouqer les 2 en même temps mais surtout je n'arrive pas à garder en mémoire les cases qu'il à vérouillés. Car, il ce peut très bien qu'une case proche soit une case d'un objet (mur, obstacle...).

    Je cherche donc un algo pour m'aider à résoudre ce problème. Auriez vous des idées concernant ce problème. Existe t'il une méthode existante pour ça?

    Merci

  2. #2
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Lorsque une entité bouge, et qu'elle est sur une case, tout ce passe bien, mais le soucis c'est que les entités bougent en pixel et ma carte est en case
    Ton problème vient de là, il faut que tu trouves une relation entre les cases et les pixels, sinon ton problème est quasi-irréalisable.

    En théorie, tu ne devrais pas avoir d'entité qui sont entre deux cases car si tel est le cas, à quoi cela correspond t'il ? (elle est dans le vide?)

Discussions similaires

  1. [Dates] souci avec les dates
    Par Ludo75 dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2006, 17h15
  2. Soucis avec les JTables et les listener
    Par shingo dans le forum Composants
    Réponses: 2
    Dernier message: 22/02/2006, 11h51
  3. Soucis avec les Graphiques dans les états
    Par Chococrocq dans le forum IHM
    Réponses: 27
    Dernier message: 04/01/2006, 19h03
  4. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08
  5. Réponses: 7
    Dernier message: 05/10/2004, 13h44

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