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

 Delphi Discussion :

Afficher une carte


Sujet :

Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 16
    Par défaut Afficher une carte
    Bonjour à tous,
    je suis débutante en delphi. Je cherche à réaliser un jeu sur carte. Pour commencer simplement, comment afficher des carrés à l'écran de manière à ce que quand on clique sur un bouton, on se déplace sur la carte. Je m'explique : pour être simple, l'interface de jeu contient 3 carrés en largeur et 3 en hauteur. Ces 9 carrés représentent ce que l'on voit. En arrière, la carte totale devrait faire (restons simple) 10*10 carés.
    Comment passer aux carrés supérieurs quand on appuie sur un bouton (haut par exemple) ?
    Je pensais faire un tableau, mais je ne les connaît pas bien...
    Est-ce que quelqu'un pourrait éclairer ma lanterne ?
    Une recherche sur google ne m'a rien apporté
    merci
    Gaby

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    C'ets tres simple :

    Tu pose un TPanel sur la fenetre.

    Tu pose ensuite dessus un composant TImage et tu charge dedans (loadFromFile) l'image de ta carte complete.

    Cette carte fait donc 10x10, avrc par exemple 100px par carrés, soit 1000x1000.

    Pour afficher que 3x3 carrés de 100x100 ton panel devra donc faire 300x300px (witdh/height).

    Si tu veux afficher les 9 carrés du coint haut/Gauche de ta carte, place ton TImage en (0,0) (top/Left), le reste debordant du panel ne sera pas affiché.

    Ensuite pour deplacer ta carrte de 1 case vers la droite, deplace l'image (TImage) de 100px (1 case) vers la Gauche, soit en (-100,0) (top/left).

    De meme pour la hauteur.

    Donc les mouvements de ta carte se font par pas de 100 px.
    Il faudra effectuer des tests pour arreter les deplacements quand on arrive sur les bords de la carte.

    Pour aller plus loin, tu peux utiliser un TScrollBox a la place du TPanel pour benefichier d'asscenseur pour un deplacement manuel.

    Enfin, en jouant sur les evenements souris (OnMouseMove, OnMouseDown, OnMouseup) tu peux aussi deplacer la carte "a la souris".
    OnMouseUp/Down, active/Desactiv les deplacements, (OnMousUp sauvegarde dans un TPoint les coord X et Y courant de la souris).
    OnMouseMove, calcule le delta entre les X et Y courant de la souris et l'ancienne position (Le TPoint) et deplace le TImage relativement de ces valeurs Delta.
    Ne pas oublier une mise a jour de la variable TPoint avec les veleurs courrantes de X et Y pour le prochain calcul

    Voila
    Si tu as besoin de plus ....

    Ha J'oublisais : Bienvenu parmis nous !!

  3. #3
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Tu devrais utiliser une TDrawGrid (ou une TStringGrid plutôt); Tu retrouveras toutes les fonctionalités dont tu as besoin. Voici quelques petits exemples qui illustrent les principales possibilités. La 1ère démo permet de créer une carte avec l'image sélectionnée dans la liste se trouvant à droite. Il suffit alors de cliquer une case de la grille pour y charger l'image. La 2ème démo montre comment on déplace un personnage dans une grille. On peut soit utiliser la souris pour changer sa position, soit les touches de direction du clavier... Pour la 3ème démo, voici un petit Puissance4 qui te montrera la qualité des graphiques que l'on peut obtenir avec une TStringGrid.

    Bref, je pense qu'en utilisant une grille plutôt qu'une TImage ou TPaintBox, cela t'évitera de devoir reprogrammer toutes ces fonctionalités. à+

Discussions similaires

  1. [Google Maps] Afficher une carte à partir d'un code postal
    Par gohanfaye dans le forum APIs Google
    Réponses: 5
    Dernier message: 21/06/2011, 21h13
  2. Réponses: 1
    Dernier message: 07/02/2011, 23h54
  3. afficher une carte
    Par ____22 dans le forum MFC
    Réponses: 4
    Dernier message: 17/07/2009, 17h06
  4. afficher une carte (.ecw)
    Par fiitz dans le forum wxWidgets
    Réponses: 2
    Dernier message: 29/04/2008, 12h13
  5. [Lazarus] Afficher une carte 2D isométrique
    Par Neuromancien2 dans le forum Lazarus
    Réponses: 2
    Dernier message: 05/09/2007, 21h21

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