Тема: Ланшафт
Показать сообщение отдельно
Старый 03.03.2007, 18:53   #17
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Re: Ланшафт

Я немного подумал!

Решил что лучше использовать modify terrain
и вот что я начал делать:

Короче команду for x=0 to 32 я как-то (вроде) что-то перебираю!
А как мне сделать бугорки (впадины)? (ну то есть опять старый добрый ландшафт!)

Graphics3D 640,480,16,2
Const UPS=60
camera=CreateCamera()
PositionEntity camera,0,5,0

ter=CreateTerrain(32)
For x=0 To 32
 For y=0 To 32
Next
 Next
 
light=CreateLight()
RotateEntity light,90,0,0
period=1000/UPS
time=MilliSecs()-period
Repeat
 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 KeyHit(1) End
  UpdateWorld 
 Next
 
 RenderWorld tween
 Flip
 Camera_Look(camera)
 Camera_Free_Fly(camera)
Forever
Function Camera_Look(cam,speedx#=2,speedy#=2,dang=-89,upang=89)
 mxs=MouseXSpeed()
 mys=MouseYSpeed()
 xrot#=EntityPitch(cam)
 yrot#=EntityYaw(cam)
 If(xrot#<upang)And(mys>0)Then xrot#=xrot#+speedx#*mys/10  
 If(xrot#>upang)And(mys>0)Then xrot#=upang 
 If(xrot#>dang)And(mys<0)Then xrot#=xrot#+speedx#*mys/10 
 If(xrot#<dang)And(mys<0)Then xrot#=dang  
 yrot=yrot-speedy#*mxs/10 
 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
 RotateEntity cam,xrot,yrot,0
End Function
Function Camera_Free_Fly(Obj,mf#=.5,mb#=.5,ml#=.5,mr#=.5)
 If MouseDown(1) Then MoveEntity Obj,  0 ,0, mf#;W
 If MouseDown(2) Then MoveEntity Obj,  0 ,0,-mb#;S 
 If KeyDown(30) Then MoveEntity Obj,-ml#,0,  0 ;A
 If KeyDown(32) Then MoveEntity Obj, mr#,0,  0 ;D
End Function
(Offline)
 
Ответить с цитированием