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 :

Recouvrement des sprites par les tuiles du niveaux supérieur.


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut Recouvrement des sprites par les tuiles du niveaux supérieur.
    Bonjour.

    Dans un jeux à vue dimétrique, j'ai des tuiles pour le terrain et des sprites pour le restes (objets, persos, gfx, etc.).

    Pour l'instant ma boucle d'affichage parcour naïvement tous les tiles et sprites, "du plus profond au plus près".

    Mon problème est que parfois, j'ai des sprites qui sont trop haut, et lorsque je dessine la couche supérieure ils se font couper la tête.

    Connaissez vous une petite astuce de parcours de boucle, ou autre pour éviter ce problème ?

    Merci pour votre aide.

  2. #2
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Points : 255
    Points
    255
    Par défaut
    Euh, si j'ai bien compris, tu as des éléments qui se font dessiner dessus par des tuiles?

    Mais pour l'affichage, tu dessines d'abord toutes les tuiles, puis après tous les éléments du plus profond au plus haut... Normalement avec ça, ça passe. Mais apparemment, c'est ce que tu as fait (enfin, si j'ai bien tout compris)

    J'avoue qu'avec un petit screenshot, je comprendrais peut-être mieux

    Et sinon, tu gères l'alpha?

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par valefor
    Bonjour.

    Dans un jeux à vue dimétrique, j'ai des tuiles pour le terrain et des sprites pour le restes (objets, persos, gfx, etc.).

    Pour l'instant ma boucle d'affichage parcour naïvement tous les tiles et sprites, "du plus profond au plus près".

    Mon problème est que parfois, j'ai des sprites qui sont trop haut, et lorsque je dessine la couche supérieure ils se font couper la tête.

    Connaissez vous une petite astuce de parcours de boucle, ou autre pour éviter ce problème ?

    Merci pour votre aide.
    Dessine les tuiles d'abord dans une passe et le reste dans une deuxième passe.

    Jc

  4. #4
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Comme le dit fearyourself, et suivant ce que tu dis :
    En utilisant ce qui te permet de définir "du plus profond au plus près", tu peux d'abord dessiner tous les plus profonds, puis le smons profonds, puis les plus près, etc...
    Mindiell
    "Souvent, femme barrit" - Elephant man

  5. #5
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Hé bien si je fait deux passes, certains tiles recouvrent les portes. Le faire en une passe me semblait la meilleure solution en terme de simplicité.

    Je vais faire un truc qui permet de savoir si c'est le moment d'afficher le sprite en fonction de sa hauteur.

    Pour que vous voyez le problème,

    les flames passent sous les murs. En deux boucles, c'est la porte qui passe devant le montant de droite.

    Et merci pour vos remarques.

  6. #6
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    Tu dois donc gérer plusieurs "niveaux" de profondeur :
    - le fond
    - les éléments mouvants (portes, objets prenables, etc...)
    - les personnages
    - les flammes

    par exemple.
    Mindiell
    "Souvent, femme barrit" - Elephant man

  7. #7
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    les flammes sont dessinées comment ? Ce sont des tuiles ou des bitmaps indépendantes ?

  8. #8
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Sur cette image, les flammes, la porte, les vitres et les personnages sont des sprites.

  9. #9
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par valefor Voir le message
    Sur cette image, les flammes, la porte, les vitres et les personnages sont des sprites.
    eh bien ce sera simple : il faut faire une pile d'objets à afficher un peu à la manière de BeginScene/EndScene ( pipeline rendu ) sous OpenGL/Dx mais en triant les éléments selon leur coordonnée Y par exemple .
    C'est comme cela que je procéde pour mon jeu et ça marche impeccable.
    Par exemple déclarer une classe CObjetRendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class CRenderObject{
    int indice;
    int rectTop;
    int rectLeft;
    int rectBottom;
    int rectRight;
    //...
    }
    dans les coordonnées du rectangle on copie celles du sprite qui représente le rectangle image

    Sur le screenshot que tu as mis, tu vois que le batiment a son ordonnée < aux ordonnées des flammes donc on affiche d'abord le batiment puis les flammes après

Discussions similaires

  1. Réponses: 22
    Dernier message: 20/10/2014, 08h44
  2. detection des visages par les reseau de neurones
    Par fifisoso dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/05/2013, 13h41
  3. Segmentation des images par les HMM
    Par bhsoussou dans le forum Images
    Réponses: 25
    Dernier message: 17/09/2012, 17h41
  4. Passer des arguments par les signaux des event-box
    Par black is beautiful dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 30/10/2008, 08h43
  5. Lecture des URL par les servlet
    Par axel119 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 12/09/2007, 19h20

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