Unendliches Universum speichern in Null Bytes von ???
Alle Positionen der Sterne sind fest definiert - indem die Quersumme des Clusters als SeedRnd verwendet wird. So könnte man theoretisch ein kompliziertes Universum schaffen - ohne es je zu speichern - und es ist jedesmal wieder gleich, wenn man wieder mal durchfliegt (So was wie eine Schöpfungs-DNS - hmm, ist wohl etwas vermessen :) )
[code:1:af8340e0e2]
Graphics3D 630,480,16,2
SetBuffer BackBuffer()

Global csize=400
Global dichte=40
Dim o(dichte,2,2,2)
Global x#=0
Global y#=0
Global z#=0
Global xc=0
Global yc=0
Global zc=0

UpdateEnviroment()
cam=CreateCamera()
CameraFogMode cam,1
CameraFogRange cam,csize/2,csize

; mainloop
While Not KeyDown(1)

x#=EntityX(cam,1)
y#=EntityY(cam,1)
z#=EntityZ(cam,1)

xc=Floor(x#/csize)
yc=Floor(y#/csize)
zc=Floor(z#/csize)

If xc<>xc_old Or yc<>yc_old Or zc<>zc_old
xc_old=xc
yc_old=yc
zc_old=zc
UpdateEnviroment()
EndIf

If KeyDown(200) Then
MoveEntity cam,0,0,10
EndIf
If KeyDown(208) Then
MoveEntity cam,0,0,-10
EndIf

mxs#=-MouseXSpeed()
mys#=MouseYSpeed()
MoveMouse 320,240
TurnEntity cam,mys,mxs,0
RenderWorld()
Text 0,0,x+" / "+y+" / "+z
Flip
Wend
End

Function UpdateEnviroment()
For kk=0 To 2
For jj=0 To 2
For ii=0 To 2
seed=(xc+(ii-1))*(yc+(jj-1))*(zc+(kk-1))
SeedRnd(seed)
For star=0 To dichte
If o(star,ii,jj,kk)=0 Then
o(star,ii,jj,kk)=CreateSprite()
EndIf
EntityColor o(star,ii,jj,kk),Rand(255),Rand(255),Rand(255)
PositionEntity o(star,ii,jj,kk),((xc+(ii-1))*csize)+Rand(csize),((yc+(jj-1))*csize)+Rand(csize),((zc+(kk-1))*csize)+Rand(csize),1
Next
Next
Next
Next
End Function
[/code:1:af8340e0e2]



Suche:
(unterstützt mySQL Wildcards ala %)
Titel:
Text:
Autor: