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

VB.NET Discussion :

Mini jeu, Graphic, Picturebox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 117
    Par défaut Mini jeu, Graphic, Picturebox
    Bonjour, je suis en train de faire un petit jeu sans prétention en VB.net.

    Comme montré sur l'image jointe, j'utilise une seul picturebox pour afficher 241 pièce en isométrique. A la base je voulais mettre une picturebox par élément cela me permet de savoir quand l'utilisateur clique sur une picturebox. Mais il y avais un problème de transparence car les pièces sont posée les une sur les autres.

    Donc via l'objet Graphic je dessine tous les élément sur un unique picturebox.

    Maintenant le problème c'est que je ne peux pas savoir quand l'utilisateur clique sur un élément en sachant qu'il y aura encore beaucoup d'autre élément les un sur les autres.

    J'ai pensé à utiliser les coordonnées de la souris mais c'est vraiment le bordel car les pièce sont les une sur les autres et il peux y avoir 4 à 5 étages donc quasiment les mêmes coordonnées pour 4, 5 pièces.

    Si une personne à une idée pour ce problème je suis preneur

    Merci d'avance.
    Images attachées Images attachées  

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Perso, je créerais une classe clsPiece intégrant l'image (et éventuellement un masque pour gérer le clic dans le cas de pièces non rectangulaires et/ou évidées), la taille, la position,...

    Le jeu comporterait donc une List(of clsPiece) s'affichant dans un picturebox ou directement sur le formulaire.
    La List(of Piece) gèrerait l'ordre d'affichage des pièces.

    Au clic, on vérifierait quelle clsPiece est concernée, on la déplacerait en tête de liste à l'intérieur de List(of clsPiece) et on gèrerait son déplacement.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 117
    Par défaut
    C'est exactement se que j'ai fait mais pour le gestion des cliques sur une pièce précise sa reste presque impossible sachant que plusieurs pièces peuvent avoir quasiment la même position.

    Je pense quand même utiliser des picturebox... Pour deux raisons la première, pas de problème au niveau de l'evenement clique. La 2eme raison c'est quand l"utilisateur fera une modification il y aura seulement une picturebox a mettre a jour au lieu de redessiner l'image entière qui peut comporter 500,600 élément.

    Déjà avec 241 pièces j'ai un lapse de temps pour que sa ré affiche l'image.

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    On peut définir des PictureBox non rectangulaires (exemple de code en C#) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    using System;using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Windows.Forms;
     
    var gp = new GraphicsPath() ;
    gp.AddEllipse(new Rectangle(0, 0, MyPictureBox.Width-1, MPictureBox.Height-1));
    MyPictureBox.Region = new Region(gp);

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 117
    Par défaut
    Merci graffito pour ta réponse. J'ai essayé l'idée est bonne mais le résultat n'est pas terrible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim gp As New Drawing2D.GraphicsPath
    gp.AddLine(0, 19, 31, 0)
    gp.AddLine(0, 20, 0, 34)
    gp.AddLine(1, 35, 31, 53)
    gp.AddLine(32, 53, 63, 34)
    gp.AddLine(63, 33, 63, 20)
    gp.AddLine(63, 19, 32, 0)
    lstTuile(i).Img.Region = New Region(gp)
    Images attachées Images attachées  

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Il me semble que les pointillés sont dus au fait que les régions ne sont pas exactement contigües. C'est peut-être dû au fait que tu n'utilises pas exactement les mêmes points (à un pixel près) pour les extrémités des segments dans les AddLine.

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

Discussions similaires

  1. [Ludique] Mini-jeu : déchiffrage de code (niveau facile)
    Par RomainVALERI dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/07/2010, 19h24
  2. Mini jeu avec quelques bugs
    Par fouedou77 dans le forum C
    Réponses: 12
    Dernier message: 27/06/2009, 10h07
  3. [68000] Création mini-jeu
    Par Hiike dans le forum Autres architectures
    Réponses: 0
    Dernier message: 13/04/2009, 21h21
  4. Mini jeu de rôle en php
    Par Sh4dow49 dans le forum Projets
    Réponses: 5
    Dernier message: 23/10/2008, 17h08
  5. mini jeu en construction (débutant)
    Par samy100 dans le forum C
    Réponses: 45
    Dernier message: 24/04/2006, 00h36

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