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

SDL Discussion :

[C/SDL]faire le tri des sprites (une sorte de "y-ordering" ou "Z order")


Sujet :

SDL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 52
    Points : 33
    Points
    33
    Par défaut [C/SDL]faire le tri des sprites (une sorte de "y-ordering" ou "Z order")
    Salut

    Je débute en C et avec SDL (je suis infographiste 3D à la base). J'essaie de réaliser des petites démos de jeux pour tester mes graphismes 2D et mes gameplays pour les jeux pros que je réalise (mais dont je ne réalise pas le dev en général).

    La méthode que je souhaite utiliser est une méthode assez classique :
    je donne à un "objet" (=sprite+des propriétés (variables)) 3 variables de position :
    - position initiale en x et y (=anciennepos)
    - nouvelle position en x et y (=newpos)
    - centre en x et y (=centre)

    et je calcule selon la simple formule :
    newposImg.x=ancienneposImg.x+centreImg.x;
    newposImg.y=ancienneposImg.y-centreImg.y;
    Ce qui m'intéresse pour faire le tri ensuite, c'est de comparer 2 images (=comparaison 1):
    if (centreImgA.y < centreImgB.y)
    {
    SDL_BlitSurface(imgA, &ancienneposImgB, ecran, &centreImgA);
    SDL_BlitSurface(imgB, &ancienneposImgA, ecran, &centreImgB);
    }
    else if (centreImgA.y >= centreImgB.y)
    {
    SDL_BlitSurface(imgB, &ancienneposImgA, ecran, &centreImgB);
    SDL_BlitSurface(imgA, &ancienneposImgB, ecran, &centreImgA);
    }
    Ce qui m'intéresse est surtout la différente en Y, car avec cette comparaison que le système d'affichage fonctionne.

    Évidemment, cette méthode n'est pas terrible, car c'est un test pour voir si ça marche et ça marche bien entendu pour cet exemple simple (2 images).

    Mais maintenant, j'aurai besoin d'aide car je ne sais pas trop comment faire pour "automatiser" tout ça :
    - Créer des objets en déterminant leur variable comme anciennepos, newpos et centre et cela en x et y : dois-je créer et utiliser des structures ou des fonctions pour ça ?
    - je pensais créer un système de tri utilisant le principe de la "comparaison 1", mais de manière automatique, sur les images affichées sur l'écran (et non la map) : faut-il créer une fonction qui compare ? Si auriez-vous un début de piste que je pourrais suivre, car je ne trouve pas la méthode pour faire ça (comme je le disais, je débute en C/SDL).

    Donc, voilà, si vous avez des idées ou des pistes, je suis très intéressé .

    Merci.

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 328
    Points
    2 328
    Par défaut
    Et bien, je n'ai pas compris grand chose : tu souhaite realiser une sorte de profondeur, c'est ca ? Et pour ce faire, tu dis que tout ceux dont le y est grand sont au premier plan ?

    Ce que tu peux faire, c'est effectivement une structure qui contiendrait tout, un tableau qui recapitulerai tout tes objet et un tri a bulle selon le Y.

    Il ne te resterai plus qu'a parcourir tout le tableau est a afficher les sprite.

    Si c'est un peu trop flou, redemande moi des infos en precisant un peu mieux le contexte.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    oui, le tri d'un tableau ou d'une liste chainée qui contient les sprites à l'écran, tout simplement. une bête fonction peut faire ça, à toi de la coder.

    si tu ne sais pas comment faire renseigne toi sur les algorithmes de tri.

Discussions similaires

  1. [MySQL] Comment faire le tri des membres actifs dans un SELECT
    Par pasc06 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/11/2008, 14h00
  2. comment faire une image de fond et des sprites
    Par Krishna dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 31/03/2008, 22h41
  3. [XPATH] XPath dû mal de faire le tri des API
    Par tralloc dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 27/04/2006, 00h07
  4. Tri des colonnes d'une DBGRID
    Par Atrebate62 dans le forum Bases de données
    Réponses: 3
    Dernier message: 31/05/2004, 12h20

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