Показать сообщение отдельно
Старый 02.03.2006, 19:58   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Вот:
[blitz]
Graphics3D 800,600,32

Const n#=5
Const p#=0.5
Const f#=2*n

Global Camera=CreateCamera()
PositionEntity Camera,0,0,-10
Global light_sun = CreateLight(2)


Global period=1000/30
Global time=MilliSecs()-period

Global FPS_Count%, FPS_LastCount%
Global MSL#=MilliSecs()

Function MyFPS$()
Local MS#=MilliSecs()
If (MS-MSL)>=500 Then
FPS_LastCount=FPS_Count*2
FPS_Count=0
MSL=MS
Else
FPS_Count=FPS_Count+1
EndIf
Return Str(FPS_LastCount)
End Function

obj%=CreateWallPart()
wf=1
While Not KeyDown(1)
SetBuffer BackBuffer()

Repeat
elapsed=MilliSecs()-time
Until elapsed

ticks=elapsed/period

tween#=Float(elapsed Mod period)/Float(period)

For k=1 To ticks
time=time+period
If k=ticks Then CaptureWorld

UpdateInput()
UpdateWorld
Next
If KeyHit(17) Then WF%=Not WF%

WireFrame WF
RenderWorld tween

Text 20,150, MyFPS()
;UpdateDayControl()
Flip(0)
Wend


Function CreateWallPart()
X1#=p
Z1#=p
X2#=n
Z2#=p
X3#=n
Z3#=n
X4#=p
Z4#=n

F1=CreatePoligon(X1#,Z1#, X2#, Z2#, X3#, Z3#, X4#, Z4#)
F2=CopyMesh(F1)
FlipMesh(f2)
PositionEntity(F2,0,f,0)
W1=CreateCube()
FitMesh(W1,0,0,0,p,f,n-p,0)
PositionEntity w1,0,0,p

W2=CreateCube()
FitMesh(W2,0,0,0,n-p,f,p,0)
PositionEntity w2,p,0,0

W3=CreateCube()
FitMesh(W3,0,0,0,p,f,p,0)

Piv = CreatePivot()
EntityParent(f1,Piv)
EntityParent(f2,Piv)
EntityParent(w1,Piv)
EntityParent(w2,Piv)
EntityParent(w3,Piv)
Return Piv
End Function

Function CreatePoligon(X1#,Z1#, X2#, Z2#, X3#, Z3#, X4#, Z4#)
Mesh%=CreateMesh()
Surf%=CreateSurface(Mesh)
V1%=AddVertex(Surf%, X1#, 0, Z1#);,0, 0)
V2%=AddVertex(Surf%, X2#, 0, Z2#); 1, 0)
V3%=AddVertex(Surf%, X3#, 0, Z3#); 1, 1)
V4%=AddVertex(Surf%, X4#, 0, Z4#); 0, 1)

T1%=AddTriangle(Surf%, V1%,V3%,V2%)
T2%=AddTriangle(Surf%, V1%,V4%,V3%)
Return mesh%
End Function

Function UpdateInput()
TurnEntity Camera, MouseYSpeed()*0.3,0,0
TurnEntity Camera, 0,-MouseXSpeed()*0.3,0,1
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

If KeyDown(200) Then MoveEntity camera,0,0,2
If KeyDown(20 Then MoveEntity camera,0,0,-2
If KeyDown(205) Then MoveEntity camera,2,0,0
If KeyDown(203) Then MoveEntity camera,-2,0,0
End Function
[/blitz]
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием