je pense qu'on doit pouvoir l'optimiser en précalculant les cosinus et les sinus mais c'est chiant à faire

Code : Tout sélectionner
InitSprite()
InitKeyboard()
If (InitSprite() And InitKeyboard() And OpenScreen(640,480,32,"Plasma")) = 1
EndIf
xres = 640
yres = 480
;Récupère l'adresse du buffer invisible
StartDrawing(ScreenOutput())
*AdresseEcran=DrawingBuffer()
Pitch=DrawingBufferPitch()/SizeOf(long)
#PI = 3.14159
; ------ Definition de la palette --------------
Dim mapal.l(300)
For i = 0 To 300
angle.f = angle + ((2 * #pi) / 300)
mapal(i) = RGB (Abs (Cos (angle + (4*#pi/3))* 255),Abs (Cos (angle + #pi/2)* 255), Abs (Cos (angle)* 255))
Next
; ----------------------------------------------
; ------------------- PLASMA -------------------
Repeat
a2 + 5
a3 + 5
StartDrawing (ScreenOutput ())
*AdresseEcran=DrawingBuffer()
For x = 0 To xres
A = Sin ((x + a2)/(300 + Sin (x/100)*100)) * 75 + 75
For y = 0 To yres
*ptr.Long = *AdresseEcran + (x+y*pitch) * SizeOf(Long)
A2 = Cos ((y + a3)/(300 + Cos (y/100)*100)) * 75 + 75
coul = a + a2
If coul > 300
coul = coul-300
EndIf
coul = mapal (coul)
;Plot (x,y, coul)
*ptr\l = coul
Next
Next
StopDrawing ()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
; ----------------------------------------------