Label qui rebondit

Soyez le premier à donner votre avis sur cette source.

Vue 2 982 fois - Téléchargée 253 fois

Description

Utilisation des propriétés Left et Top d'un Label pour le faire rebondir en utilisant une fonction sinus et un timer.

Mettez une Form de petite taille et Timer.

Mettez aussi ça dans un module:

'déclaration de variables globales
Global ang As Integer 'l'angle qui variera entre 90 et 270
Global x%, inCCount%, rndCount% 'respectivement, position en X (left), pas d'incrémentation en x (+2 ou -2), et une variable pour l'amplitude du rebond

Vous pouvez télécharger le petit fichier zip.

Source / Exemple :


Private Sub Form_Load()
'au chargement, on initialise
ang = 90 'l'angle commence à 90
x% = 0 'position X (left) à 0 (tout à gauche
inCCount% = 20 'pas d'incrémentation x
rndCount% = 200 + 640 * Rnd 'rebond (aléatoire)
End Sub

Private Sub Timer1_Timer()
ang = ang + 4 'on augmente l'angle à chaque itération du timer
If ang = 270 Then 'quand on a fait un demi-tour, on réinitialise
  ang = 90
  rndCount% = 200 + 640 * Rnd
End If
'ici, on transforme l'angle en radian et on calcule son sinus
'Celui-ci variera entre 0 et -1. On le multiplie par rncCount
'(qui contient une valeur entre 200 et 840) et ça rebondit (!)
y% = 840 + rndCount% * Cos(ang * 3.1415 / 180)
'on définit les propriétés left et top (x et y) pour le label
Label1.Top = y%
Label1.Left = x%
'on incrémente x
x% = x% + inCCount%
'si besoin, on change le pas d'incrémentation pour x
If x% = 1320 Then inCCount% = -20
If x% = 0 Then inCCount% = 20

'décommenter ces lignes pour avoir un effet de couleur
'pas très beau mais qui peut être intéressant techniquement
'xc% = x% / 1320 * 14 + 1
'yc% = y% / 840 * 14 + 1
'v$ = Hex$(xc%) + Hex$(xc%) + Hex$(yc%) + Hex$(yc%)
'Label1.ForeColor = Val("&h" & v$ & "00")
End Sub

Conclusion :


C'est mon premier source déposé ! Je me suis posé pas mal de question sur le "niveau" ainsi que la "catégorie".

J'espère vous en fournir d'autres et qu'ils vous satisferont !

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
288
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
13 juin 2008

salut,

Je trouve ton truc assrz intéressant mais j'aimerais savoir si je peux m'en servir pour des formes rondes par exemple
Messages postés
2
Date d'inscription
mardi 15 janvier 2002
Statut
Membre
Dernière intervention
14 octobre 2004

> Question, pourquoi pas l'instruction Randomize???
J'ai oublié !!!

Tu trouves que c'est nul mes commentaires ? Quand je code sur un projet, je ne commente pas autant, là c'est parce que c'était sur le net.
Messages postés
25
Date d'inscription
lundi 14 janvier 2002
Statut
Membre
Dernière intervention
7 octobre 2002

Beaucoup de commentaire, c'est bien mais j'esspere que tous tes programmes ne sont pas comme sa parce que je voudrais pas etre la personne qui debogera un de tes projet mais c'est tres original comme script..

Question, pourquoi pas l'instruction Randomize???
Messages postés
363
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
25 août 2003

arf c rigolo ce truc...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.