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

Silverlight Discussion :

Conseils pour un jeu


Sujet :

Silverlight

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Conseils pour un jeu
    Bonjour !

    J'ai en projet la création d'un jeu de lettres sur Silverlight. C'est un jeu de type Scrabble, avec un plateau de 15x15 cases et un chevalet contenant 7 lettres tirées au hasard.

    Je découvre Silverlight et je ne sais pas trop dans quelle direction me tourner pour créer le plateau (quels contrôles seraient les mieux appropriés ?), le chevalet, ainsi que gérer le drag and drop des lettres entre le chevalet et les cases du plateau.

    Avant de partir dans une mauvaise direction... que me conseilleriez-vous ? Je ne cherche pas du code tout fait mais juste une orientation pour éviter de patauger. Merci !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 159
    Points : 259
    Points
    259
    Par défaut
    Hello,

    Pour la gestion du drap'n'drop, je te conseille au mois de jeter un oeil sur le dernier Toolkit : http://www.codeplex.com/silverlight . D'une manière générale, c'est une bonne base de travail aussi.

    Bon courage et n'hésites pas à revenir nous dire où tu en es!

    Bye,

    David Rousset
    Microsoft France

  3. #3
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Pour l'affichage je te dirais bien de partir sur des ListBox dont tu modifies le template et le paneltemplate.

    Un StackPanel horizontal pour le chevalet et un WrapPanel limité à 15 cases pour le plateau.

    Tu peux du coup bénéficier du Drag&Drop du Toolkit

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos conseils !

    J'avance bien, j'ai terminé le lobby (tchat et accès aux tables de jeu) et presque fini la gestion des entrées-sorties dans les tables. Une vingtaine d'accros à l'ancien jeu viennent tester tout ça régulièrement, pour l'instant ça tient le choc. Je vais pouvoir commencer à m'amuser avec le jeu proprement dit.

    Je retiens l'idée des ListBox avec les Templates.

    Je découvre toute la richesse de Silverlight au fur et à mesure de mon avancée, je trouve ce truc-là prodigieux.

    Une question concernant Silverlight 4 : je suis bien tenté de continuer le développement avec la bêta, mais je ne sais pas si c'est encore prématuré ? Sachant que mon application n'exploite aucun truc sophistiqué, juste des contrôles très classiques.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Si ça intéresse d'autres personnes, voila comment j'ai procédé finalement :

    - Deux Grids pour le chevalet et pour la grille
    - Les "cellules" de ces deux Grids sont remplies avec des rectangles

    Les lettres sont figurées par des UserControls "Piece" (Rectangle + TextBlock affichant la lettre).

    Le Drag and Drop est géré par les événements MouseLeftButtonDown, MouseMove et MouseLeftButtonUp, comme proposé par la doc de Silverlight.

    Pour déplacer la pièce, je modifie tout bêtement ses quatre marges (Margin).
    Des marges -éventuellement négatives- qui excèdent les dimensions du conteneur permettent à un contrôle de s'extraire visuellement de celui-ci.

    Affecter -1 aux marges Top et Left et +1 aux marges Bottom et Right déplace par exemple la pièce d'1 pixel vers la gauche et le haut. Tout en restant "enfant" du chevalet, visuellement elle peut se ballader sur toute la fenêtre.

    Au moment du "Drop", je peux vérifier si la pièce se trouve sur la grille ou sur le chevalet à l'aide de ses nouvelles coordonnées et de la méthode VisualTreeHelper.FindElementsInHostCoordinates :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim coll = VisualTreeHelper.FindElementsInHostCoordinates(coords, Me.Grille)
    Si la pièce se trouve sur la grille, je retrouve un des rectangles qui la remplissent dans la collection renvoyée. Il suffit que je récupère les index de ligne et de colonne de ce rectangle pour atterrir au bon endroit. Idem pour le chevalet.

    Si le mouvement est interne à la grille ou au chevalet, je modifie simplement la ligne et la colonne de la pièce dans la Grid où elle se trouve. Si elle s'est baladée de l'un à l'autre, je supprime la pièce d'origine et j'en recrée une nouvelle dans la Grid de destination.

    Pour éviter que la pièce se ballade "derrière" d'autres contrôles, je mets son ZIndex à 100 au moment du Drag et je le rabaisse au moment du Drop.

    Enfin, pour annuler le mouvement d'une pièce (si elle n'a été lâchée ni sur la grille ni sur le chevalet), je remets tout bêtement ses marges à zéro.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conseils pour un jeu de labyrinthe
    Par Cacaz dans le forum Lua
    Réponses: 2
    Dernier message: 08/01/2015, 13h23
  2. Conseils pour un jeu vidéo 3D en C#
    Par peterslastar dans le forum API graphiques
    Réponses: 1
    Dernier message: 08/03/2013, 10h28
  3. [WPF / C#] [Jeux] Besoin de conseil pour un jeu
    Par Psycadi dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 21/06/2010, 12h01
  4. Besoin conseil pour un petit jeu
    Par Cosmosis dans le forum Langage
    Réponses: 3
    Dernier message: 22/12/2006, 14h44
  5. Quelques conseils pour la reprise de mon jeu ?
    Par Franck.H dans le forum SDL
    Réponses: 16
    Dernier message: 23/09/2006, 12h55

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