Code : Tout sélectionner
;***************************************************************************************************************************
InitSprite()
InitKeyboard()
InitMouse()
ExamineDesktops()
dw = DesktopWidth(0)
dh = DesktopHeight(0)
dd = DesktopDepth(0)
dxmax = dw - 1
dymax = dh - 1
OpenScreen(dw, dh, dd, "")
#zw = 13
#zh = 8
#za = #zw * #zh
#zmax = #za - 1
r.D
b.D
t.D = 20.0
z = 0
lw = 2.0 * #PI * t
lh = lw
Global Dim x(#zw - 1, #zh - 1, 3, 1)
Global Dim y(#zw - 1, #zh - 1, 3, 1)
Global Dim aa.D(#zw - 1, #zh - 1)
Global Dim a.D(#zw - 1, #zh - 1)
Global Dim r.D(#zw - 1, #zh - 1)
diag12.D = Sqr(lw * lw + lh * lh) / 2.0
For h = 1 To #zh
For w = 1 To #zw
aa(w - 1, h - 1) = (Random(628) - 314) / 10000.0
a(w - 1, h - 1) = (Random(628) - 314) / 100.0
r(w - 1, h - 1) = 16 + Random(31)
x(w - 1, h - 1, 0, 0) = (w - 1) * lw
y(w - 1, h - 1, 0, 0) = (h - 1) * lh
x(w - 1, h - 1, 1, 0) = (w - 1) * lw + (lw - 0)
y(w - 1, h - 1, 1, 0) = (h - 1) * lh
x(w - 1, h - 1, 2, 0) = (w - 1) * lw + (lw - 0)
y(w - 1, h - 1, 2, 0) = (h - 1) * lh + (lh - 0)
x(w - 1, h - 1, 3, 0) = (w - 1) * lw
y(w - 1, h - 1, 3, 0) = (h - 1) * lh + (lh - 0)
Next
Next
CreateSprite(z, lw, lh, #PB_Sprite_AlphaBlending)
If StartDrawing(SpriteOutput(z) )
For y = 0 To lh - 1
For x = 0 To lw - 1
r = diag12 * Sqr(Pow(x - (lw / 2.0), 2.0) + Pow(y - (lh / 2.0), 2.0) ) / 63.0
b = 127 + Cos(x / t) * Cos(y / t) * 127
If r > b
r = b
EndIf
c = RGB(r, 0, b)
Plot(x, y, c)
Next
Next
StopDrawing()
EndIf
diag2.D = Sqr(dw * dw + dh * dh)
diag.D = diag2 / 2.0
a2.D = ATan2(dw, dh)
a1.D = 0.0 - a2
a3.D = #PI - a2
a4.D = #PI - a1
aa.D
aaa.D
vt.D = 0.5
cx = 0 - lw / 2
cy = 0 - lh / 2
Repeat
Delay(1)
ExamineKeyboard()
ExamineMouse()
an.D + 0.01
For h = 1 To #zh - 1
For w = 1 To #zw - 1
aa(w, h) + ((Random(628) - 314) / 100000)
a(w, h) + Sin(aa(w, h) ) * vt
Next
Next
For h = 0 To #zh - 1
For w = 0 To #zw - 1
x(w, h, 0, 1) = Cos(a(w, h) ) * r(w, h)
y(w, h, 0, 1) = Sin(a(w, h) ) * r(w, h)
If w < #zw - 1
x(w, h, 1, 1) = Cos(a(w + 1, h) ) * r(w + 1, h)
y(w, h, 1, 1) = Sin(a(w + 1, h) ) * r(w + 1, h)
EndIf
If h < #zh - 1
If w < #zw - 1
x(w, h, 2, 1) = Cos(a(w + 1, h + 1) ) * r(w + 1, h + 1)
y(w, h, 2, 1) = Sin(a(w + 1, h + 1) ) * r(w + 1, h + 1)
EndIf
x(w, h, 3, 1) = Cos(a(w, h + 1) ) * r(w, h + 1)
y(w, h, 3, 1) = Sin(a(w, h + 1) ) * r(w, h + 1)
EndIf
Next
Next
For h = 0 To #zh - 1
For w = 0 To #zw - 1
; DisplaySprite(0, x(w, h, 0), y(w, h, 0) )
DisplaySprite(0, 0, 0)
TransformSprite(0, x(w, h, 0, 0) + x(w, h, 0, 1) + cx,
y(w, h, 0, 0) + y(w, h, 0, 1) + cy,
x(w, h, 1, 0) + x(w, h, 1, 1) + cx,
y(w, h, 1, 0) + y(w, h, 1, 1) + cy,
x(w, h, 2, 0) + x(w, h, 2, 1) + cx,
y(w, h, 2, 0) + y(w, h, 2, 1) + cy,
x(w, h, 3, 0) + x(w, h, 3, 1) + cx,
y(w, h, 3, 0) + y(w, h, 3, 1) + cy)
Next
Next
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)