9 réponses
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
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
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 .
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+
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"??
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 .