Тема: FAQ по B3D
Показать сообщение отдельно
Старый 25.08.2007, 16:52   #5
avel
Бывалый
 
Аватар для avel
 
Регистрация: 12.10.2006
Сообщений: 737
Написано 131 полезных сообщений
(для 452 пользователей)
Re: FAQ по B3D

РАЗНОЕ

н: как работать с таймером?
avel: примерно так:
;в цикле пишешь:
If TimerBegin=0 Then TimerBegin=MilliSecs()
If MilliSecs()>=TimerBegin+время_задержки_в_мс Then 
	TimerBegin=MilliSecs()
	...
EndIf
н: как скрыть\показать курсор в оконном режиме?
avel: используй HidePointer\ShowPointer

н: как запустить другой файл из программы?
avel: ExecFile("имя_файла")

н: как включить каркасный просмотр?
avel: If KeyHit(wire_key) Then wLog=Not wLog WireFrame wLog

н: как создать равномерное освещение?
avel: AmbientLight r,g,b

н: как создать мерцающий свет (как от костра)?
avel:
 
flame = CreateLight(2)
PositionEntity flame,0,1,0
LightColor flame,255,150,150
LightRange flame,50
;в главном цикле:
LightRange flame,Rnd(30,50)
н: как сделать простую воду?
avel: примерно так:
water=CreatePlane()
EntityColor water,10,60,200
EntityAlpha water,0.6

н: как сделать воду с волнами?
avel: делается загрузкой меша или террайна:
;создаем тип
Type WaterVertices
	Field x#
	Field y#
	Field z#
End Type
;загружаем меш
Global water=LoadMesh("resurs\models\world\water.3ds")
Global Watersurf=GetSurface(water,1)
Dim WaterVertex.WaterVertices(CountVertices(Watersurf))
;функция создания воды
Function CreateWater()
EntityFX water,1
EntityAlpha water,0.6
;ScaleEntity water,,,
;PositionEntity water,,,
;wtex=LoadTexture("")
;ScaleTexture wtex,.05,.05
;EntityTexture water,wtex
For i=0 To CountVertices(Watersurf)-1
	WaterVertex(i) = New WaterVertices
	WaterVertex(i)\x#=VertexX#(Watersurf,i)
	WaterVertex(i)\y#=VertexY#(Watersurf,i)
	WaterVertex(i)\z#=VertexZ#(Watersurf,i)
Next
End Function 
;обновляем воду в главном цикле
Function RefreshWater()
Watersurf=GetSurface(water,1)
WaterFreq#=MilliSecs()/4
For i=0 To CountVertices(Watersurf)-1
	WaterVertex(i)\y#=Sin(WaterFreq+WaterVertex(i)\x#*500+WaterVertex(i)\z#*300);*1.2
	VertexCoords Watersurf,i,WaterVertex(i)\x#,-WaterVertex(i)\y#,WaterVertex(i)\z#
Next
End Function 
;все!
н: как разделить экран на несколько частей?
avel: используй CameraViewport

н: как заставить спрайт не поворачиваться к камере?
avel: SpriteViewMode имя_спрайта,2

н: как "снимать" скриншоты?
avel: вот функция:
Function screenshot()
For w = 1 To 100
	name$ = "screen" + w + ".bmp"
	If FileType(name$) = 0
		If done = 0
			SaveBuffer(FrontBuffer(), name$)
			done = 1
		EndIf
	EndIf
Next
done = 0	
End Function
н:как создать эффект тумана?
avel: используй команды работы с камерой:
camera = CreateCamera()
CameraFogMode camera,1
CameraFogRange camera,10,100
CameraFogColor camera,100,100,120
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо avel за это полезное сообщение:
indri (05.06.2009), Yalenz (02.03.2009), Ziro(AL) (26.12.2009)