Concordances de picturesbox...
Fermé
Gn3uX
Messages postés
5
Date d'inscription
mardi 5 novembre 2013
Statut
Membre
Dernière intervention
7 novembre 2013
-
5 nov. 2013 à 19:28
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 7 nov. 2013 à 19:21
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 7 nov. 2013 à 19:21
9 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
7 nov. 2013 à 03:39
7 nov. 2013 à 03:39
Bonjour,
Quel VB et éventuellement, quel version ?
A+
Quel VB et éventuellement, quel version ?
A+
Gn3uX
Messages postés
5
Date d'inscription
mardi 5 novembre 2013
Statut
Membre
Dernière intervention
7 novembre 2013
7 nov. 2013 à 14:27
7 nov. 2013 à 14:27
bonjour, j'utilise visual studio 2010, et je pense que c'est du visual basic(vb.net??).
Merci!
Merci!
Gn3uX
Messages postés
5
Date d'inscription
mardi 5 novembre 2013
Statut
Membre
Dernière intervention
7 novembre 2013
7 nov. 2013 à 14:30
7 nov. 2013 à 14:30
Je te mets un petit bout de code pour etre sur que l'on parle du meme langage!!
Private Sub Form1_Keydown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
'deplacement
Select Case e.KeyCode
'gauche
Case Keys.NumPad4
bordures(absPION - 5, ordPION)
touché(absPION - 5, ordPION)
If bool1 = True Then
pion(0).Location = New System.Drawing.Point(absPION - 5, ordPION)
absPION = absPION - 5
End If
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
7 nov. 2013 à 14:51
7 nov. 2013 à 14:51
Oui, c'est bien VB.Net 2010
Pour ta question.. savoir si le pion touche (pénètre) la "bébéte"
Intéresse-toi à la classe Rectangle (voir l'aide) pour enrober ta "bébéte" :-)
Ensuite Rectangle.Contains(Point.X,Point.Y)
Si tu a un problème tu dis, j'expliquerais un peu plus.
A+
Pour ta question.. savoir si le pion touche (pénètre) la "bébéte"
Intéresse-toi à la classe Rectangle (voir l'aide) pour enrober ta "bébéte" :-)
Ensuite Rectangle.Contains(Point.X,Point.Y)
Si tu a un problème tu dis, j'expliquerais un peu plus.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Gn3uX
Messages postés
5
Date d'inscription
mardi 5 novembre 2013
Statut
Membre
Dernière intervention
7 novembre 2013
7 nov. 2013 à 14:57
7 nov. 2013 à 14:57
Super merci, je regarde ça et je te redis si j'ai un problème..
encore merci pour ta réactivité!
encore merci pour ta réactivité!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 7/11/2013 à 15:25
Modifié par lermite222 le 7/11/2013 à 15:25
Tant que j'y suis.. un peu plus simple.pour le déplacement de ton pion
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDownA+
Select Case e.KeyCode.ToString()
Case "Left"
Pion.Location = New Point(Pion.Left - 5, Pion.Top)
Case "Right"
Pion.Location = New Point(Pion.Left + 5, Pion.Top)
Case "Up"
Pion.Location = New Point(Pion.Left, Pion.Top - 5)
Case "Down"
Pion.Location = New Point(Pion.Left, Pion.Top + 5)
End Select
End Sub
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
7 nov. 2013 à 15:56
7 nov. 2013 à 15:56
Bof, comme dis... tant qu'ont y est.. :-)
tu dis..
A+
Public Class Form1
Dim RecBete As Rectangle
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Dim B As Boolean
Select Case e.KeyCode.ToString()
Case "Left"
Pion.Location = New Point(Pion.Left - 5, Pion.Top)
B = RecBete.Contains(Pion.Left, Pion.Top) Or RecBete.Contains(Pion.Left, Pion.Top + Pion.Height)
Case "Right"
Pion.Location = New Point(Pion.Left + 5, Pion.Top)
B = RecBete.Contains(Pion.Left + Pion.Width, Pion.Top) Or RecBete.Contains(Pion.Left + Pion.Width, Pion.Top + Pion.Height)
Case "Up"
Pion.Location = New Point(Pion.Left, Pion.Top - 5)
B = RecBete.Contains(Pion.Left, Pion.Top) Or RecBete.Contains(Pion.Left + Pion.Width, Pion.Top)
Case "Down"
B = RecBete.Contains(Pion.Left, Pion.Top + Pion.Height) Or RecBete.Contains(Pion.Left + Pion.Width, Pion.Top + Pion.Height)
Pion.Location = New Point(Pion.Left, Pion.Top + 5)
End Select
If B Then
Label1.Text = "BOUM"
Else
Label1.Text = ""
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Initialiser le rectangle Bete à sa création (pas dans le form_Load
RecBete = New Rectangle(Bete.Left, Bete.Top, Bete.Width, Bete.Height)
End Sub
End Class
tu dis..
A+
Gn3uX
Messages postés
5
Date d'inscription
mardi 5 novembre 2013
Statut
Membre
Dernière intervention
7 novembre 2013
7 nov. 2013 à 17:38
7 nov. 2013 à 17:38
eh bien écoute, sur la méthode, je comprends, après un petit test, çà marche...donc ça c'est super, merci beaucoup pour ton aide!!
déjà j'utilisais les touches du pavé numérique pour une raison toute bête, c'est que les déplacements en diagonales sont aussi de mise..donc je trouve mon code plus pratique..mais j'apprécie beaucoup ta façon de faire, que je ne connaissais pas..
d'ailleurs a ce propos, je ne comprends pas trop les lignes de ce type
Au point ou on en est, je me permet une autre petite question...j'ai la fâcheuse habitude d'utiliser des fonctions un peu pour tout et n importe quoi...
exemple..
et plus loin a chaque déplacement, je vérifie si mon pion ne dépasse pas les bordures de la fenêtre ( que j'ai mis en variable resX et resY) avant de le déplacer en appelant ma fonction
ça se tient, ou il y a "mieux"??
déjà j'utilisais les touches du pavé numérique pour une raison toute bête, c'est que les déplacements en diagonales sont aussi de mise..donc je trouve mon code plus pratique..mais j'apprécie beaucoup ta façon de faire, que je ne connaissais pas..
d'ailleurs a ce propos, je ne comprends pas trop les lignes de ce type
B = RecBete.Contains(Pion.Left, Pion.Top) Or RecBete.Contains(Pion.Left, Pion.Top + Pion.Height)..peux tu m'eclairer un peu la dessus??
Au point ou on en est, je me permet une autre petite question...j'ai la fâcheuse habitude d'utiliser des fonctions un peu pour tout et n importe quoi...
exemple..
Public Function bordures(ByVal abs As Integer, ByVal ord As Integer) As Boolean
If abs <= 0 Or abs >= resX Or ord <= 0 Or ord >= resY Then
bool1 = False
Else : bool1 = True
End If
Return bool1
End Function
et plus loin a chaque déplacement, je vérifie si mon pion ne dépasse pas les bordures de la fenêtre ( que j'ai mis en variable resX et resY) avant de le déplacer en appelant ma fonction
bordures(absPION - 5, ordPION)
ça se tient, ou il y a "mieux"??
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 7/11/2013 à 19:23
Modifié par lermite222 le 7/11/2013 à 19:23
remplacer ta fonction bordure..
je me demande bien comment tu fais les diagonales ? avec les touches Home, End... suffit alors de les rajouter dans le select case.
Pour les explications sur la ligne voir mon poste précédant et l'aide.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Case "Left"Mais bon, si tu préfère ta façon de faire..
If Pion.Left > 5 Then
Pion.Location = New Point(Pion.Left - 5, Pion.Top)
B = RecBete.Contains(Pion.Left, Pion.Top) Or RecBete.Contains(Pion.Left, Pion.Top + Pion.Height)
End If
je me demande bien comment tu fais les diagonales ? avec les touches Home, End... suffit alors de les rajouter dans le select case.
Pour les explications sur la ligne voir mon poste précédant et l'aide.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .