Page 1 of 1

StarsFields

Posted: Sun May 18, 2003 9:19 am
by Keph_

Posted: Sun May 18, 2003 9:45 am
by Passant
nice work

Re: StarsFields

Posted: Wed May 21, 2003 1:22 am
by PB
> http://103683.free.fr/purebasic/stars3d.exe (64 Kb)

Can't run this one on W2K Pro... I get an error saying "Impossible de lire
la police".

Stars

Posted: Sun Jun 01, 2003 7:31 pm
by starax
Twinkle twinkle.


;More stars
#scrw = 1600
#scrh = 1200

#centerofscrw = #scrw/2
#centerofscrh = #scrh/2

#scrd = 16

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

If OpenScreen(#scrw,#scrh,#scrd,"benny's code") = 0
MessageBox_ (0,"Could not open screen", "blahhh blaa", #MB_ICONINFORMATION|#MB_OK)
End
EndIf

SetFrameRate(90)


;-------- MainLoop --------
Repeat
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
DrawingMode(1)
Gosub DrawStarField
Gosub MoveCamera
StopDrawing()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End


;--------- Procs / Subs -------------


; #### INITSTARFIELD ####
InitStarField:
; Structure of a star ...
Structure 3DStar
x.f ; X-Coordinate
y.f ; Y-Coordinate
z.f ; Z-Coordinate
EndStructure

; Init Starfield ...
Dim Stars.3DStar(SSum)
For dummy = 0 To SSum-1
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<10
Cspeed=Cspeed+0.01
ElseIf Direction=-1 And Cspeed>-10
Cspeed=Cspeed-0.01
EndIf
CameraZ=CameraZ+Cspeed
Return



; #### Draw StarField ####
DrawStarField:
For dummy = 0 To SSum-1
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+#centerofscrw
SY = Stars(dummy)\y / (Stars(dummy)\z-CameraZ)*100+#centerofscrh

If SX<#scrw And SY<#scrh And SX>0 And SY>0
b.f = 255-(((Stars(dummy)\z)-CameraZ)*(255./1000.))
c=Int(b)
Plot ( SX, SY, RGB(c,c,c))
EndIf

Next dummy
Return

Re: Stars

Posted: Sun Jun 01, 2003 8:39 pm
by TronDoc
starax wrote:Twinkle twinkle.


;More stars
#scrw = 1600
#scrh = 1200
I had to do this for my "poor" PC:

Code: Select all

;More stars
; #scrw = 1600
; #scrh = 1200
#scrw = 800
#scrh = 600
Joe

Re: StarsFields

Posted: Sun Jun 01, 2003 8:44 pm
by TronDoc
Keph_ wrote:Just 2 littles progs:
http://103683.free.fr/purebasic/stars3d.exe (64 Kb)
http://103683.free.fr/purebasic/tunnel.exe (108 Kb)
Keph
cool!
after staring at the tunnel and then switching back
to a normal screen it took awhile for it to stop moving! LOL Joe

Posted: Mon Jun 02, 2003 1:32 pm
by Denis
Salut Keph_,

Run without problem under Win98SE.
Nice work.



Denis