Aller au contenu
Zebulon
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Fleches directionnelles en vb


Raphdu01

Messages recommandés

Bonjour

 

Je vous explique mon problème :

Dans le cadre d'un projet au lycée je réalise un petit jeu et j'utilise un bouton qui se déplace dans mon form grâce à l'évènement Keydown et au code ASCII des touches.

Le problème est que je n'arrive pas à utiliser les touches directionnelles, ça ne marche qu'avec les lettres.

 

Voila un extrait de code :

 

Raq correspond au bouton

Form2.hj1 est un variable qui contient le code ascii de la touche que j'aurai défini avant

Les touches sont défini dans un formulaire et le mouvement du bouton se fait dans un autre formulaire.

 

        'Déplacement de la raquette vers le haut
       If e.KeyCode = Form2.hj1 Then

               Raq.Top = Raq.Top - 30

           End If

 

Je sais que le code est bien enregistré dans ma variable car je le test avec messagebox.show(e.keycode) lors de l'événement keydown et ce code est 38 pour la flèche haut.

 

Existe-t'il une solution ?

 

Merci d'avance a++

Lien vers le commentaire
Partager sur d’autres sites

Je vais te donner un peu plus de code ce sera plus clair.

 

J'ai trois formulaire Form2 (qui correspond a un menu), Options (le formulaire ou je définit les touches) et Solo (formulaire de jeu ou le bouton se déplace)

 

Sur Form2

 

Public hj1 As String 'hj1 signifie "haut joueur 1"

 

Sur Options

 

Private Sub TxtHJ1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtHJ1.KeyDown

 

'Je clique sur la touche "haut"

 

Form2.hj1 = e.KeyCode

MessageBox.Show(e.KeyCode) 'Donne 38

 

End Sub

 

Sur Solo

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

Me.KeyPreview = True

 

MessageBox.Show(Form2.hj1) 'Donne 38

 

End Sub

 

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

 

'Déplacement de la raquette vers le haut

If e.KeyCode = Form2.hj1 Then

 

Raq.Top = Raq.Top - 30

 

End If

 

End Sub

 

J'espère que ce sera plus clair pour toi.

 

Form2.hj1 n'est qu'une variable, il n'y a pas de tableau, donc pas de cellules (si c'est à ça que tu pensais)

Modifié par Raphdu01
Lien vers le commentaire
Partager sur d’autres sites

C'est une bonne question. Je ne vois pas pourquoi, si tu es capable d'en récupérer le KeyCode au même titre que pour les touches "normales", tu n'arrives pas à en faire ce que tu veux.

Il faut poser la question à des gens qui programment en VB :-P

 

Juste un truc...

If e.KeyCode = Form2.hj1 Then

Raq.Top = Raq.Top - 30

End If

Comment VB fait-il la différence entre une affectation et un test d'égalité ? C'est l'opérateur "=" pour les deux ?

Lien vers le commentaire
Partager sur d’autres sites

Il faut poser la question à des gens qui programment en VB :P

 

Je pensais que tu en faisait partie il me semblait que tu m'avais souvent aidé dans ce domaine mais en fait il s'agit d'un autre chat ^^ . Par contre tu m'as aussi bien aidé pour beaucoup d'autre problème...

 

Comment VB fait-il la différence entre une affectation et un test d'égalité ? C'est l'opérateur "=" pour les deux ?

 

oui c'est la même chose. Je sais que par exemple pour du PHP et du C (je crois) c'est "==" pour une égalité mais je pensais que c'était plutôt eux qui étaient bizarre.. :P

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...