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

Langage Delphi Discussion :

ordre d'affichage moteur 2d


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut ordre d'affichage moteur 2d
    Bonjour,
    Je suis en train de créer un moteur 2d style caesar). Il fonctionne sur une pile d'image à afficher selon un ordre descendant ou ascendant ( a voir selon mon triage). Je le trie selon les x, ou selon les y, ou même selon la distance de l'image au milieu de l'écran en bas, mais à chaque fois, je n'est pas le bon ordre d'affichage, c'est à dire que j'ai des images qui sont affichés aprés (parsk'elles sont reconnu comme aprés selon le triage) alors qu'il faudrait qu'elles soient afficher avant...Je sais pas si je me fais bien comprendre lol.

    Bref, quelqu'un sait comment (sur quel algo) on trie des coord (x,y) et tailleimage(x,y) pour avoir le bon ordre d'affichage?

    merci
    Darkyl, celui qui conduit quand il boit pas .(faudra penser passer le permis )

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    as-tu un exemple d'image ?

    si tu parles d'un jeu en 3D iso, la position et la taille de l'image ne suffisent pas, en fonction de ce que représente l'image l'ordre d'affichage peu changer. Il faut donc associer des informations à l'image pour pouvoir dessiner le tout correctement.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    j'envoie la photo d'une maison, tous les batiments sont de ce type. Que veut tu dire par d'autres infos? J'ai les coord du point de départ de l'image du batiment et ses dimensions, les coord du point de départ de l'empatement au sol du batiment et ses dimensions. J'ai largement ce qu'il me faut... Mais je ne sais comment trier.. Il faut plusieurs conditions pour savoir si une image doit être affiché avant ou apré une autre... mais lesquelles?
    Images attachées Images attachées  
    Darkyl, celui qui conduit quand il boit pas .(faudra penser passer le permis )

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    alors à priori le tri en X n'apporte rien

    par contre, il faut trier en Y par ordre croissant, mais en prenant comme référence le point au sol dans l'image...par exemple dans ton image c'est le haut de l'image + 28 pixels

    imagine une image de 10 pixels de haut qui viendrait se placer derrière le bâtiment, si tu tries uniquement sur la position ou la taille de l'image, la second image ne sera pas bien placée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        +----
        | .....
     +--| :
     |  | :
     +--| : 
        | :.... <- point de référence dans l image
        |  \
        +----
    dans cet asciiArt, les points représentent le bâtiment dans l'image, les + - et | sont les bords gauche, haut et bas de deux images superposées

    C'est ce "point de référence" dont je parlais dans mon précédent message.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    tous dépend de ton point de visée

    recherche du cotée de zorder

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #6
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    Merci de vos réponses. Pour zorder, je ne pas encore trouvé de lien google en français (qui me sois util) mais je creuse.

    sinon, le trie des y suivant les coord de l'empatement au sol des objet (la méthode préconisée par Paul TOTH) peut en effet fonctionner, étant donner que je me place en 3d iso). Je vais la tester.

    Je vais tous changer dans mon moteur. Je vais le baser sur des cases de a*b pixels qui contiendront des images ou pas, contiendra des batiments ou pas. C'est à dire que la case peut contenir un batiment mais ne rien afficher (si ce n'est pas la premiere case au sol de ce batiment). Ainsi, avec les cases, plus de soucis d'affichage, case(n+1) sera toujours afficher aprés case(n). Pour les objets animés, qui n'ont pas de case prédéfini, c'est la case au dessus de laquelle ils seront affiché qui déterminera leur ordre. Pour parfair le tout,je prend des cases de la taille du plus petit batiment ou objet qui sera affiché (du style, un perso) et je converti les coords2d(x,y) en coord3diso(x',y').


    Mes cases ne sont jamais crées (sous aucune forme que ce soit). Quand on clic,il calcul le case en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     a=x/(largeur d'une case) et b=y/(largeur d'une case)
    //b donnant le multiple de nbre de case par ligne (par ex, si 10case par ligne, renvoi 20)
    //a donnant le rang dans la ligne (par exemple, renvoie 15)
    // Donc, c'est la case 20*10+15=case215.
    //Cherche une case inferieur existante dans la liste d'affichage et l'insert aprés
    De telle sorte, je ne surchage pas mon appli, pas de temps de chargement (juste les objets crées).

    Bonne idée? Qu'est ce que vous en penser?
    Darkyl, celui qui conduit quand il boit pas .(faudra penser passer le permis )

Discussions similaires

  1. Ordre d'affichage de faces dans un moteur 3D
    Par Matt2094 dans le forum Moteurs 3D
    Réponses: 8
    Dernier message: 08/04/2006, 21h20
  2. [SQL] Ordre d'affichage des lignes d'un état
    Par duboisfa dans le forum Oracle
    Réponses: 20
    Dernier message: 28/02/2006, 23h00
  3. [Reports 6] Ordre d'affichage des lignes d'un état
    Par duboisfa dans le forum Reports
    Réponses: 2
    Dernier message: 17/02/2006, 16h21
  4. [Débutant] Ordre d'affichage, 2D
    Par YéTeeh dans le forum OpenGL
    Réponses: 4
    Dernier message: 13/06/2005, 19h51
  5. Réponses: 5
    Dernier message: 08/03/2005, 13h22

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