Sur le code suivant, je comprend tout, mise à part quelques détails, voilà, copiez coller ce code déjà pour voir ce que ca donne :
Code : Tout sélectionner
If InitSprite()=0
MessageRequester("Fatal Error!","Could not initalize directX",0)
End
EndIf
#screen_width.w=1024
#screen_height.w=768
If OpenScreen(#screen_width,#screen_height,16,"")=0
MessageRequester("Fatal Error!","Could not initalize the screen",0)
End
EndIf
If InitKeyboard()=0
MessageRequester("Fatal Error!","Could not initalize the keyboard",0)
End
EndIf
SetFrameRate(60) ;i put this in to keep the frame rate constant
xmax.w=10000
ymax.w=10000
zmax.w=2000
sspeed.w=-10
zmin.w=10
num.w=5000 ;get slow around 2500-3000 and i have 2.66 cpu
centerx.w=#screen_width/2
centery.w=#screen_height/2
zoom.w=60
shade.w=0
Dim sx(num)
Dim sy(num)
Dim sz(num)
For i=0 To num
sx(i)=Random(xmax)-xmax/2
sy(i)=Random(ymax)-ymax/2
sz(i)=Random(zmax)
Next i
Repeat
StartDrawing(ScreenOutput())
For i=0 To num
sz(i)=sz(i)+sspeed
If sz(i)<=zmin
sz(i)=zmax
sx(i)=Random(xmax)-xmax/2
sy(i)=Random(ymax)-ymax/2
EndIf
screenx.w=(sx(i)*zoom)/sz(i)+centerx
screeny.w=(-sy(i)*zoom)/sz(i)+centery
shade=Int(255/zmax* -sz(i))
If screenx < #screen_width
If screeny < #screen_height
If screenx > 0
If screeny > 0
Plot(screenx,screeny,RGB(shade,shade,shade))
EndIf
EndIf
EndIf
EndIf
Next i
StopDrawing()
FlipBuffers()
ClearScreen(0,0,0)
ExamineKeyboard()
Until KeyboardReleased(#PB_Key_Escape)
CloseScreen()
End
Code : Tout sélectionner
sx(i)=Random(xmax)-xmax/2
je vois quelle valeur ils utilisent mais comprend pas en quoi c indispensable (même en modifiant je vois bien que ca marche plus, mais pourquoi est ce ainsi ?)
idem pour ceci :
Code : Tout sélectionner
screenx.w=(sx(i)*zoom)/sz(i)+centerx