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 :

sdl et creation damier


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut sdl et creation damier
    Bonjour à tous,

    Avant de poster, j'ai bien cherché partout, lu des tas de tutoriels mais rien n'y fait, je suis SDL-hermétique (enfin pas trop j'espère ...)

    Voici mon problème :
    je souhaite en SDL :
    - créer un damier (alternant des cases de couleurs) : ça c'est fait avec SDL_gfx.
    - pouvoir indiquer les coordonnées du damier dans les cases correspondantes (du texte donc ? mais je ne trouve pas comment créer et placer du texte à une position donnée : celle du milieu de ma case)

    en gros je voudrais faire :

    1 | 2 | 3 | 4
    2 | X | X | X
    3 |
    4 |

    Vu que là je bloque complètement, je me dis que je n'ai rien compris aux concepts de SDL et que ma conception actuelle n'est pas bonne : il vaut mieux que je dessine un plateau et que je le charge en fond d'écran ? mais dans ce cas, lorsque que l'utilisateur cliquera sur une case comment je saurais quelle case est sélectionnée ?

    merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut
    Merci pour ta réponse, je vais donc essayer de faire une surface texte si j'ai bien compris.

    Finalement je viens d'essayer et je trouve ça franchement lourd : si j'ai bien compris il faudrait que je crée autant de SDL_surface texte que de coordonnées texte que je dois mettre dans mon damier. C'est carrément bizarre !

    Je fais certainement fausse route. Ne vaudrait-il pas mieux que mon damier soit une image de fond ? alors dans ce cas comment je place mes pieces dessu et comment je connais la case sur laquelle l'utilisateur a cliqué ?

    Désolé mais là je nage à fond ...

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Ce n'est pas grave de nager à fond lorsque l'on a des maitres nageurs dans le coin ^^

    Oui , il se peut qu'il soit préférable d'utiliser une image de fond , pour le damier
    Si tu est sur que celle ci ne change jamais pendant toute la durée du programme.
    La solution que je t'ai proposé , et la seule que je connaisse , elle peut sembler un peut lourde , mais il se peut aussi que l'on puisse l'allégé. Je n'ai pas compris , à quoi va servir le texte , mais si ce texte , ne change et bouge jamais tout peut le mettre dans l'image de fond.

    Pour les cliques , qui semblent de poser beaucoup de problème , on est pas en QT ( enfin , je peux penser que tu as le même raisonnement que ce que l'on fait pour QT ) , et que pour connaitre l'objet sur lequel on clique , on ne nécéssite pas d'avoir un objet dans le programme.

    Donc , avec la gestion de événement tu peux trouver comment récupéré la position de la souris.

    Maintenant que tu as tes deux positions ( une sur x , une sur y )
    Tu va diviser cette position par la taille des cases.
    Pareil pour y.
    et après , si ton damier est un tableau à deux dimension tu peux y accéder comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case_x = position_souris_x / TAILLE_CASE;
    case_y = position_souris_y / TAILLE_CASE;
     
    //Recuperation de la case en question
    if ( damier[case_y][case_x] != NULL )
    //Je pense qu'il y a une pièces ... enfin ceci dépend de ce que tu stocke dans le damier.
    Par contre pour le calcul de la case , si tu as des bordures , il faut en prendre en compte dans les calculs ( mais c'est super simple ( je trouve ).
    Si tu ne comprends pas , prend une feuille , fais le damier , écrit les valeurs en x et y que tu connais ( genre le 0 , 0 ; le point en bas à gauche , et autre )
    Prend une calculatrice ( ou ta tête ) , prend un point au hasard , genre 234, et 421 , divise par la taille des cases et tu remarquera qu'on tombe sur le bon indice pour la case ( en partant de zero )

    Pour placer les pièces sur le damier , tu blit les surfaces après avoir blitter le background.
    Pour les bonne position , c'est l'indice de la case * la taille de la case

    J'espère que j'ai été assez clair
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut
    Coucou,

    Le texte ne sert à rien, si ce n'est de visualiser les coordonnées de la grille (si j'ai suivi ce que tu m'as dis, je me contente de faire un background de ces coordonnées et de les blitter sur la surface), par contre, en effet les cases pourraient changer puisque j'aimerai (plus tard bien sûr quand je serai plus grande ) qu'elles changent de couleur quand une piece est sélectionnée. C'est pourquoi j'ai fait des rectangles avec SDL_fgx.

    Je pense que je vais laisser tomber l'esthétique et l'ergonomie pour l'instant et voilà ce que je vais essayer de faire :

    - afficher mes pièces sur l'écran : une surface par pièce et je les positionne sur les rectangles ?

    Merci pour ton aide,
    Je risque de faire à nouveau appel à toi. C'est un projet dans le cadre d'une formation, c'est pourquoi j'ai un peu la pression mais en meme temps je ne souhaite pas qu'on me mache le travail, j'aimerai comprendre ...
    Je n'ai eu aucun problème pour développer le moteur le jeu en mode console avec mon bon vieux emacs mais là, faire l'interface graphique c'est franchement laborieux !!!

  5. #5
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    as tu suivi ces tutos :

    http://loka.developpez.com/tutoriel/sdl/

    Normalement en les suivant tu devrais être capable de faire ce que tu veux

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut
    Merci Loka,

    Je me sers en effet de ces tutoriaux. Mais pour un novice qui a un objectif bien précis, c'est toujours difficile de faire le tri et de transposer.

    Ils sont néanmoins très bien fait et assez didactiques

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/04/2015, 02h02
  2. vision d'un pion sur un damier.
    Par Med_Prog dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 08/09/2005, 10h39
  3. creation d'un jeu en opengl et SDL sous DevC++
    Par loka dans le forum OpenGL
    Réponses: 1
    Dernier message: 07/05/2005, 11h16
  4. Creation de fiche dynamique
    Par Mouss26 dans le forum C++Builder
    Réponses: 7
    Dernier message: 24/07/2002, 07h56
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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