forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Ланшафт (http://forum.boolean.name/showthread.php?t=2818)

Fant 03.03.2007 18:05

Re: Ланшафт
 
Такой прикол вышел! Я только сейчас понял, что data то постоянная величина. То есть нельзя ставить rand(0,2) допустим. Я в шоке! Получаеся, что весь этот пост имеет только познавательных характер!

Или можно все-таки как-то сделать ладшафт "бугристым", при этом как-то сохранить data! ?
(data нужна для перемещения игрока)

Fant 03.03.2007 18:53

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


Fant 03.03.2007 22:28

Re: Ланшафт
 
Все) все вопросы по ландшафту снимаются! Слава богу!


Часовой пояс GMT +4, время: 08:54.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot