JEU OU LA BOULE DE DESTRUCTION EST ATTIRÉE VERS LA SOURIS DES FOIS DIFFICILE A D
neamar
Messages postés26Date d'inscriptionvendredi 9 septembre 2005StatutMembreDernière intervention12 avril 2009
-
21 mai 2007 à 21:47
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 2010
-
22 mai 2007 à 17:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 22 mai 2007 à 17:19
Pas d'erreur chez moi...
cs_margot000
Messages postés23Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention11 juillet 2007 22 mai 2007 à 17:12
quand je copie ton premier exemple dans un projet, msg erreur : Procedure Sub ou Fonction non definie !!
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 22 mai 2007 à 01:17
Oups j'ai oublié ^^ :
Pour tes images utilise BitBlt et TransparentBlt, ensuite lorsque tu sors de l'ecran de jeu la boule passe de l'autre coté mais ne perds pas de vitesse en se rapprochant mais en gagne.
Euh ensuite, je crois que c'est tout. Bonne continuation.
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 22 mai 2007 à 01:12
Tiens voila un exemple de comment tu peux l'utiliser pour faire un Timer, il y a d'autres façons, à toi de choisir celle que tu preferes.
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type Timers
T1 As Long
T2 As Long
State As Boolean
Interval As Integer
End Type
Dim MonTimer As Timers
Private Sub Form_Load()
Dim Running As Boolean
Running = True
MonTimer.Interval = 10000 '10000ms=10s
Do
If TimerIs(MonTimer) Then
MsgBox "Fin"
Running = False
End If
DoEvents
Loop Until Running = False
End Sub
Private Function TimerIs(TimerUsed As Timers) As Boolean
With TimerUsed
.T2 = GetTickCount
If .State = False Then
.T1 = GetTickCount
.State = True
End If
If .T2 - .T1 >= .Interval Then
TimerIs = True
.State = False
End If
End With
End Function
cs_margot000
Messages postés23Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention11 juillet 2007 21 mai 2007 à 21:53
mais comment utilisé GetTickCount a la place d'un timer ?? tu aurais pa une source pour illustrer ton commentaire stp ?
merci d'avance MarGot
neamar
Messages postés26Date d'inscriptionvendredi 9 septembre 2005StatutMembreDernière intervention12 avril 2009 21 mai 2007 à 21:47
Salut !
Au lieu de déplacer des Picture box sur la form, renseigne toi sur les Apis, ca évite les effets de clignotements...qui sont un peu gênants à la longue.
Tu trouveras une bonne introduction à ce domaine ici : http://www.vbexplorer.com/VBExplorer/gdi1.asp
Ensuite, essaie d'éviter les Timers, qui n'ont aucune précision...utilise plutot une boucle interne avec GetTickCount ou au pire timer (l'instruction qui renvoie le nombre de secondes écoulées depuis minuit...par soustraction, on obtient une bonne temporisation, beaucoup plus efficace...)
et sinon, j'aime bien l'idée..mais tu devrais enlever le"si on sort par en haut, on réapparait par en bas..", car la boule devient alors incontrôlable ! Bonne continuation dans l'univers VB !
22 mai 2007 à 17:19
22 mai 2007 à 17:12
22 mai 2007 à 01:17
Pour tes images utilise BitBlt et TransparentBlt, ensuite lorsque tu sors de l'ecran de jeu la boule passe de l'autre coté mais ne perds pas de vitesse en se rapprochant mais en gagne.
Euh ensuite, je crois que c'est tout. Bonne continuation.
22 mai 2007 à 01:12
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type Timers
T1 As Long
T2 As Long
State As Boolean
Interval As Integer
End Type
Dim MonTimer As Timers
Private Sub Form_Load()
Dim Running As Boolean
Running = True
MonTimer.Interval = 10000 '10000ms=10s
Do
If TimerIs(MonTimer) Then
MsgBox "Fin"
Running = False
End If
DoEvents
Loop Until Running = False
End Sub
Private Function TimerIs(TimerUsed As Timers) As Boolean
With TimerUsed
.T2 = GetTickCount
If .State = False Then
.T1 = GetTickCount
.State = True
End If
If .T2 - .T1 >= .Interval Then
TimerIs = True
.State = False
End If
End With
End Function
21 mai 2007 à 21:53
merci d'avance MarGot
21 mai 2007 à 21:47
Au lieu de déplacer des Picture box sur la form, renseigne toi sur les Apis, ca évite les effets de clignotements...qui sont un peu gênants à la longue.
Tu trouveras une bonne introduction à ce domaine ici : http://www.vbexplorer.com/VBExplorer/gdi1.asp
Ensuite, essaie d'éviter les Timers, qui n'ont aucune précision...utilise plutot une boucle interne avec GetTickCount ou au pire timer (l'instruction qui renvoie le nombre de secondes écoulées depuis minuit...par soustraction, on obtient une bonne temporisation, beaucoup plus efficace...)
et sinon, j'aime bien l'idée..mais tu devrais enlever le"si on sort par en haut, on réapparait par en bas..", car la boule devient alors incontrôlable ! Bonne continuation dans l'univers VB !