2 petite choses
1- ça manque de music (module)
2 - ton fond d'etoile est "plat" !! dommage
pour faire un fond d'etoile "profond"
tu cree des etoile de differents niveau de gris ,et suivant les couleurs tu les fait ce deplace a des vitesse differentes
ex : les plus foncés vont plus lentement que les plus clair ect ...
cela donnera l'illusion de la profondeur !!!
tu as plusieurs choix soit plusieurs plan en superposition d'image transparente qui bouge a des vitesses differente
soit des sprites "groupé" par couleurs qui avance avec des vitesse lié a leur couleurs !!
voila ça c'est la theorie , a toi la pratique !!

sinon Bravo pour ta demo !!
voici un code (je sais plus a qui j'ai piqué ça désolé !! )
Code : Tout sélectionner
#dobro=1
#Police=1
SSum.w = 8000 ; Amount of Stars
Cspeed.f=1
CameraZ.f=0
Gosub InitStarField
;-------- Init all needed Stuff --------
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageBox_ (0,"Can't open DirectX 7 or later", "blahhhh", #MB_ICONINFORMATION|#MB_OK)
End
EndIf
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
WindowID = OpenWindow(1, 0, 0, EcranX, EcranY , #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello")
WindowID = WindowID(1)
If OpenWindowedScreen(WindowID,0,0,EcranX,EcranY,1,1,1) = 0
MessageBox_ (0,"Could not open screen", "blahhh blaa", #MB_ICONINFORMATION|#MB_OK)
End
EndIf
SetFrameRate(60)
Repeat
event=WindowEvent()
StartDrawing( ScreenOutput())
; ici on dessine sur l'ecran avec les commande 2D
; on peut rajouter des sprites
DrawingMode(1)
Gosub DrawStarField
Gosub MoveCamera
StopDrawing()
;DisplaySprite(#dobro, de, ysprite)
FlipBuffers():; affiche l'ecran
ClearScreen(0, 0, 0) :;efface l'ecran
Until event=#PB_Event_CloseWindow
; #### INITSTARFIELD ####
InitStarField:
; Structure of a star ...
Structure a3DStar
x.f ; X-Coordinate
y.f ; Y-Coordinate
z.f ; Z-Coordinate
EndStructure
; Init Starfield ...
Dim Stars.a3DStar(SSum)
For dummy = 0 To SSum
Stars(dummy)\x = Random(10000)-5000
Stars(dummy)\y = Random(10000)-5000
Stars(dummy)\z = 100 + Random(1000)
Next dummy
Return
; ### Move Camera ###
MoveCamera:
If CameraZ>1000
Direction=-1
ElseIf CameraZ<-1000
Direction=1
EndIf
If Direction=1 And Cspeed<20
Cspeed=Cspeed+0.01
ElseIf Direction=-1 And Cspeed>-20
Cspeed=Cspeed-0.01
EndIf
CameraZ=CameraZ+Cspeed
Return
; #### Draw StarField ####
DrawStarField:
For dummy = 0 To SSum
If Stars(dummy)\z<CameraZ
Stars(dummy)\z=CameraZ+1000
ElseIf Stars(dummy)\z>(CameraZ+1000)
Stars(dummy)\z=CameraZ
EndIf
SX = Stars(dummy)\x / (Stars(dummy)\z-CameraZ)*100+EcranX/2
SY = Stars(dummy)\y / (Stars(dummy)\z-CameraZ)*100+EcranY/2
If SX<EcranX And SY<EcranY And SX>0 And SY>0
b.f = 255-(((Stars(dummy)\z)-CameraZ)*(255./1000.))
c=Int(b)
rouge =Random(255)+1
vert=Random(255)+1
bleu=Random(255)+1
;Plot ( SX, SY, RGB(rouge,vert,bleu))
Circle(SX, SY, 1 ,RGB(rouge,vert,bleu) )
EndIf
Next dummy
Return
Code : Tout sélectionner
#dobro=1
#Police=1
SSum.w = 8000 ; Amount of Stars
Cspeed.f=1
CameraZ.f=0
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
WindowID = OpenWindow(1, 0, 0, EcranX, EcranY , #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello")
WindowID = WindowID(1)
If OpenWindowedScreen(WindowID,0,0,EcranX,EcranY,1,1,1) = 0
MessageBox_ (0,"Could not open screen", "blahhh blaa", #MB_ICONINFORMATION|#MB_OK)
End
EndIf
SetFrameRate(60)
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=EcranX/2
centery.w=EcranY/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
event=WindowEvent()
StartDrawing( ScreenOutput())
; ici on dessine sur l'ecran avec les commande 2D
; on peut rajouter des sprites
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 < EcranX
If screeny < EcranY
If screenx > 0
If screeny > 0
;Plot(screenx,screeny,RGB(shade,shade,shade))
rouge=Random(255)+1
vert=Random(255)+1
bleu=Random(255)+1
Circle(screenx, screeny,1,RGB(rouge ,vert,bleu))
EndIf
EndIf
EndIf
EndIf
Next i
StopDrawing()
;DisplaySprite(#dobro, de, ysprite)
FlipBuffers():; affiche l'ecran
ClearScreen(0, 0, 0) :;efface l'ecran
Until event=#PB_Event_CloseWindow