|
 |
 |
; /resample
alias resample {
; ### Initialisation des variables:
; *** La résolution de l'écran:
set %a $window(-1).w
set %b $window(-1).h
; *** valeurs aléatoires pour l'aspect et les couleurs.
var %resample = $rand(120,220),%color = $rand(0,1)
var %text = $upper(Barre espace pour la couleur - Touche [A] pour changer le plasma - Touche Entrée pour quitter.)
; ###
; Ouvre une picwin sans titlebar ou cadre. En pleins écran, elle passe par dessus la barre des tâches.
window -pBdofh +d @n 0 0 %a %b
; *** Effet noise, point par point. (une bouillie de pixel, un peu comme l'effet neige sur une télé)
var %y 50
while %y {
set %x 50
while %x {
if (%color) drawdot -rn @n $rgb(0,$iif($r(0,1),0,255),$iif($r(0,1),0,255)) 0 %x %y
else { drawdot -rn @n $rgb($iif($r(0,1),0,255),$iif($r(0,1),0,255),0) 0 %x %y }
dec %x
}
dec %y
}
; *** Buffer (tampon) de l'image sur la même picwin.
drawcopy -ns @n 2 2 50 50 @n 0 0 100 100
; *** Resample. Multi-échantillonnage de notre texture "noise".
set %x 0
while %x < %resample { drawcopy -nms @n 0 0 $calc(50+%x) $calc(50+%x) @n 0 0 $calc(51+%x) $calc(51+%x) | inc %x 5 }
; *** Strech en plein écran.
drawrect -nrf @n 0 0 200 0 200 200
drawcopy -ni @n 0 0 200 200 @n 200 0
drawcopy -nm @n 200 0 200 200 @n 0 0 $calc(2*%a) $calc(2*%b)
; *** Calcul pour centrer notre texte.
var %Xcentre = $calc( (%a - $width(%text,verdana,15) ) / 2)
var %Ycentre = $calc( (%b - $height(%text,verdana,15) ) / 2)
; *** Texte avec un peu de relief.
drawtext -nr @n 167215 verdana 15 %Xcentre %Ycentre %text
drawtext -nr @n 165 verdana 15 $calc(1+%Xcentre) $calc(%Ycentre -1) %text
; *** Effet "Sharp" avec le flag -i.
drawrect -rfi @n 3342105 0 0 0 %a %b
}
; *** Gestion du clavier.
on *:keydown:@n:*:{
; *** Barre espace pour changer les couleurs.
; $r(a,b) = $rand(a,b)
; La valeur 0 est du noir et 16777215 = blanc. On couvre tout le spectre des couleurs.
if ($keyval = 32) { drawrect -rfi @n $r(0,16777215) 0 0 0 %a %b }
; *** Touche Entrée pour quitter. Ferme la picwin et nettoie les variables.
if ($keyval = 13) { window -c @n | unset %a %b %x }
; *** Change la texture.
if ($keychar = a) { window -c @n | resample }
}
|  |
 |
Retour à la liste des snippets
Cette annonce est-elle crédible? |
|
|
|