
Bizarre ,j'ai l'impression que le plot() de PureBasic est plus lent que le dot de darkbasic ? j'ai ressorti ma boite de darkbasic pour comparer . Bon pour l'instant j'ai triché pour accélérer l'affichage sous purebasic , j'ai placé le flipbuffers après le next y , alors que dans la version originale il est placé avant .
Pressez la barre espace pour passer de la couleur au noir et blanc.
Code : Tout sélectionner
;Atreid
;http://forum.games-creators.org/showthread.php?t=290
Declare.f mod(a,b)
Declare Erreur(Message$)
;-Initialisation
ScreenWidth = 640
ScreenHeight = 480
If InitSprite() = 0 Or InitKeyboard()=0
Erreur("Impossible d'initialiser DirectX 7 Ou plus")
ElseIf OpenScreen(ScreenWidth, ScreenHeight, 32, "demo") = 0
Erreur("Impossible de créer la fenêtre")
EndIf
size = 120
CreateSprite(0,size * 4, size * 4)
NoirBlanc = 1
Repeat
a = 2 * size
b = size * 0.6 + Random(a - (size * 0.6))
c = size*Pow(0.6,2) + Random(b-(size*Pow(0.6,2)))
d = size*Pow(0.6,3) + Random(c-(size*Pow(0.6,3)))
e = size*Pow(0.6,4) + Random(d-(size*Pow(0.6,4)))
milieux = ScreenWidth / 2 - a
milieuy = ScreenHeight / 2 - a
Dim couleur(e)
For t=1 To e
couleur(t)=RGB(55+Random(200), 55+ Random(200),55+ Random(200))
Next t
For x = a To 0 Step -1
For y = x To 0 Step -1
var = mod(mod(mod(mod(mod(x * y, a), b), c), d), e)
coul = couleur(var)
StartDrawing(SpriteOutput(0))
If NoirBlanc
FrontColor(Green(coul), Green(coul), Green(coul))
Else
FrontColor(Red(coul), Green(coul), Blue(coul))
EndIf
Plot(y,x)
Plot(x,y)
Plot(y,2*a-x)
Plot(x,2*a-y)
Plot(2 * a - y ,2 * a - x)
Plot(2 * a - x ,y)
Plot(2 * a - x ,2 * a - y)
Plot(2 * a - y ,x)
StopDrawing()
Next y
DisplaySprite(0,milieux, milieuy)
FlipBuffers()
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Space )
NoirBlanc = 1 - NoirBlanc
x=-1
y=-1
EndIf
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
Next x
Until KeyboardPushed(#PB_Key_Escape)
Procedure.f mod(a, b)
c.f = a/1.0
d.f = b/1.0
e.l = a/b
flo = (((c/d) - e) * b)+0.5
ProcedureReturn flo
EndProcedure
Procedure Erreur(Message$)
MessageRequester( "Erreur" , Message$ , 0 )
End
EndProcedure