Jeu

lordfinalff Messages postés 84 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 14 décembre 2009 - 22 juil. 2006 à 11:39
lordfinalff Messages postés 84 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 14 décembre 2009 - 24 juil. 2006 à 08:24
Bon, je suis debutant, et j'essaye malgré tout de faire un jeu, mais je n'y arrive pas, enfin, presque pas !
Je voudrais l'avis de personne qui s'y connaissse bien en programmtion, si vous avez une image appelé image1, comment feriez vous pour la faire bouger a l'aide des fleche du clavier ?

Merci !

Ps: ( expliquez votre codes, SVP )

LORDFINALFF

6 réponses

TomIlliev Messages postés 86 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 13 octobre 2016 2
22 juil. 2006 à 12:53
Salut

Dans La roitine Form_Load écrit Me.KeyPreview = True cela permet à la feuille de recevoir en priorité les événements du clavier

Dans la routine Form_KeyDown copie ce code

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Const PAS = 150 'Pas de DEPLACEMENT
With Image1
Select Case KeyCode
Case vbKeyDown
.Top = .Top + PAS
Case vbKeyUp
.Top = .Top - PAS
Case vbKeyLeft
.Left = .Left - PAS
Case vbKeyRight
.Left = .Left + PAS
End Select
'Limitatioon du DEPLACEMENT
If .Top + .Height < 0 Then .Top = ScaleHeight
If .Top - .Height > ScaleHeight Then .Top = 0
If .Left > ScaleWidth Then .Left = -.Width
If .Left + .Width < 0 Then .Left = ScaleWidth
End With
End Sub

Voilà
A+
Tomilliev
0
lordfinalff Messages postés 84 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 14 décembre 2009
22 juil. 2006 à 15:25
ok, cest a peu pres ce que je fais, mais, un truc que je n'arrive toujours pas a faire, c'est de combiné 2 touches ! Par exemple, haut et gauche, pour que limage parte en diagonale vers le haut gauche.

LORDFINALFF
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
22 juil. 2006 à 21:42
Salut,

utilise un Timer

et pour la vitesse joue avec la valeur de pas et l'interval du Timer


Const pas = 3


Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer


Private Sub Form_Load()

    Me.ScaleMode = 3

    Timer1.Interval = 10

    Timer1.Enabled = True

End Sub


Private Sub Timer1_Timer()

    Dim x As Integer

    Dim y As Integer

       

    x = Image1.Left

    y = Image1.Top

    If GetAsyncKeyState(37) < 0 Then

       If x > pas Then x x - pas Else x 0

       End If

    If GetAsyncKeyState(39) < 0 Then

       If x + pas < Me.ScaleWidth -
Image1.Width Then x x + pas Else x Me.ScaleWidth - Image1.Width

       End If

    If GetAsyncKeyState(38) < 0 Then

       If y > pas Then y y - pas Else y 0

       End If

    If GetAsyncKeyState(40) < 0 Then

       If y + pas < Me.ScaleHeight -
Image1.Height Then y y + pas Else y Me.ScaleHeight - Image1.Height

       End If

    Image1.Move x, y


End Sub

Daniel
0
lordfinalff Messages postés 84 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 14 décembre 2009
23 juil. 2006 à 09:19
Merci gobillot, c'est exactement ce qu'il me fallais, mais, pourrais tu expliquer ton codes pour qe je comprenne stp, merci !

LORDFINALFF
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
23 juil. 2006 à 21:06
Salut,

les touches du clavier sont testées par un API, il faut donc un Timer pour les testées régulièrement,

la précision dépendra donc de l'interval du Timer, mais on ne pas descendre beaucoup en dessous de 10 ça servirait à rien.

on peut jouer aussi sur le pas pour augmenter la vitesse

c'est donc un compromis entre précision et vitesse.

l'avantage c'est qu'on ne passe pas par le buffer clavier, le temps de
répétition n'est pas pris en compte, c'est l'interval du Timer qui le
détermine.

tant que la touche est appuyée, elle répond, quand elle est relachée, elle ne répond plus
le reste c'est des calculs de limite entre le pas, la taille de l'image et celle de la Forme.

Daniel
0
lordfinalff Messages postés 84 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 14 décembre 2009
24 juil. 2006 à 08:24
oui, d'accord, mais, pourrais-tu expliquer ton code, car j'aurai des truc a ajouter au ilieu, mias je ne comprend pas, quoi est quoi, merci !




LORDFINALFF
0
Rejoignez-nous