Aide pour changement d'Image sur Keydown

Signaler
Messages postés
5
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
11 novembre 2009
-
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
-
Bonjour à tous!
Je suis actuellement en fin de session au cégep, et j'ai comme projet de créer un jeu dans le genre de Mario Bros sur un écran fixe. Bref, là n'est pas le problème. Lorsque j'appuie sur la flèche de gauche, l'image d'un gif animé va à gauche, et même chose à droite. Première question: Je veux que lorsque je n'appuie sur rien, l'image se remette par défaut sur une autre image. J'ai bien essayé e.KeyCode = Keys.None, mais rien ne se passe car je crois que VB garde la dernière valeur en note, et je n'ai pas trouvé comment régler ca. Deuxième Question: Quand je fais espace, l'image saute, et retourne au sol, mais ca se passe beaucoup trop vite! Y aurait-il un moyen de ralentir ca? Je vais vous donner un exemple de ce qui se passe quand le personnage Saute:

(e.KeyCode = Keys.Space)
pctMario.Top -= 75
pctMario.Top += 75

Merci Pour votre aide!

9 réponses

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Hello,

Il existe le KeyDown pour lorsque l'on appuis sur une touche, et le KeyUp lorsque l'on la relache

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Messages postés
5
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
11 novembre 2009

Merci! C'a ma permis de répondre à ma première question^^ Tu pourrais m'aider pour la deuxième? J'avais pensé mettre un timer, mais je ne vois pas trop comment m'y prendre pour l'instant...
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Oui soit tu passe par les API windows (ce que je conseil pour évité le scintillement), soit tu met un timer qui va gérer cela, d'ailleur tu peux faire les deux ça donnerais un truc pas mal

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Messages postés
5
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
11 novembre 2009

Tu pourrais m'éclairer un peu sur le sujet? Je commence en VB, alors les API, je connais pas vraiment, et je gère assez mal les timer ^^"
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Dans ce cas oublie les Api (les DLL natives windows) essaie de le gérer via un timer, avec une intervale, je dirais = à 600ms, puis dans le code il faut que tu gère que ton player monte puis redescende que HauteurMax est atteinte.

exemple :

dim i as int = 1
sub...._tick()
HPlayer += i
if (HPlayer HMax) then i -1
if (HPlayer = 0) then
i = 1
exit sub
end if
...sub

ça devrait te donner une idée ;)

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Messages postés
5
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
11 novembre 2009

Bon, je suis pas trop sur d'avoir compris, mais je te montre mon code et redirige moi si je me trompe ^^" Dans le fond, sur mon keydown j'ai activé le timer du Saut

/*pcbMario c'est l'image dans la picturebox*/

Dim intY As Integer = pcbMario.Top
Dim i As Integer = 1
Dim intYMax As Integer = pcbMario.Top + 75

If tmrJump.Enabled = True Then

If intY = intYMax Then
i = -1
pcbMario.Top -= i
ElseIf intY = intY Then
i = 1
pcbMario.Top -= i
End If
End If



End Sub
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
il faudrait que je vois l'ensemble du projet mais ça m'a pas l'air mal

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Messages postés
5
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
11 novembre 2009

Bon bien j'ai réussi je crois^^ Mais y aurait-il un moyen de faire en sorte qu'il n'y ait pas une sorte de trait blanc qui ne suive pas mon image quand elle se déplace? Ou bien en vb, c'est certain? ^^
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Nous y voici, les fameux API, Il faudrait regarder sur le net les DLL/API windows je ne me souviens plus de son nom elle te permettrait d'éviter se sintillement

nb : http://www.google.fr/search?hl=fr&q=api+windows+scintillement+&meta=

devrait te donner quelques voies, je n'ai jamais personnellement utiliser cette api

Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT