Fade to black

Blitz3D Forums/Blitz3D Programming/Fade to black

Hey, try this. Press 1 to fade in, and 2 to fade out. Adjust fade_speed to change how quick the fade is.

Graphics3D 800,600
SetBuffer BackBuffer()

Global light=CreateLight()


Global camera=CreateCamera()
PositionEntity camera,0,0,-10
CameraRange camera,0.1,1000

Global sphere=CreateSphere()
PositionEntity sphere,2,0,0

Global cube=CreateCube()
PositionEntity cube,-2,0,0

Global fade_quad=CreateMesh()

surf=CreateSurface(fade_quad)
v0 = AddVertex (surf, -2,-2,0,  0  ,0)
v1 = AddVertex (surf,  2,-2,0,  0  ,0)
v2 = AddVertex (surf, -2, 2,0,  0  ,1)
v3 = AddVertex (surf,  2, 2,0,  0  ,1)

tri  = AddTriangle (surf,v0,v2,v1)
tri1 = AddTriangle (surf,v1,v2,v3)

EntityParent fade_quad,camera
PositionEntity fade_quad,0,0,0.5
EntityColor fade_quad,0,0,0
Global fade_alpha#=1
Global fade_dir=1; 1 to fade out, 0 to fade in, -1 for no change
Global fade_speed#=0.01; adjust for fade speed

While Not KeyHit(1)


	If KeyHit(2) Then fade_in()
	If KeyHit(3) Then fade_out()



	fade()

	UpdateWorld
	RenderWorld
	Flip

Wend
End

Function fade()
	If fade_dir=0 Then
		fade_alpha=fade_alpha-fade_speed
		If fade_alpha<0 Then
			fade_alpha=0
			fade_dir=-1
		End If
	ElseIf fade_dir=1 Then
		fade_alpha=fade_alpha+fade_speed
		If fade_alpha>1 Then
			fade_alpha=1
			fade_dir=-1
		End If
	End If
	EntityAlpha fade_quad,fade_alpha
End Function

Function fade_out()
	fade_dir=1
End Function

Function fade_in()
	fade_dir=0
End Function


should do what you want :)