Пример колышашейся травки в Блитце из "уроков"
Graphics3D 640,480
Global windwave#
Global grasscount
Global player=CreateSphere()
PositionEntity player,0, 1, -5
cam=CreateCamera(player)
light=CreateLight()
Global groundtex=LoadTexture("ground.jpg") ; Текстура земли
Ground=CreatePlane()
PositionEntity Ground,0,-1,0
EntityTexture Ground, groundtex
ramp=CreateMesh()
surf=CreateSurface( ramp )
segs=1
width#=2
For k=0 To segs
x#=Float(k)*width/segs-width/2
u#=Float(k)/segs
AddVertex surf,x,1,0,u,0
AddVertex surf,x,-1,0,u,1
Next
For k=0 To segs-1
AddTriangle surf,k*2,k*2+2,k*2+3
AddTriangle surf,k*2,k*2+3,k*2+1
Next
EntityFX ramp, 16 Or 1
grasstex=LoadBrush("grass.png",4) ; Текстура травы
PaintMesh ramp, grasstex
Dim grass(1000)
Dim grass_dir#(1000)
grasscount=0
For j#=-10 To 10 Step 1
For i#=-10 To 10 Step 1
grass(grasscount)=CopyEntity(ramp)
x#=(i+Rnd(5,5))
z#=(j+Rnd(5,5))
y#=0;
PositionEntity grass(grasscount),x,y,z
grass_dir(grasscount)=Rand(-45,45)
grasscount=grasscount+1
Next
Next
HideEntity ramp
While KeyDown(1) <> True
If KeyDown(200) MoveEntity player, 0, 0, 0.2
If KeyDown(20
MoveEntity player, 0, 0, -0.2
If KeyDown(203) TurnEntity player, 0, 2, 0
If KeyDown(205) TurnEntity player, 0, -2, 0
If KeyDown(2) SpriteViewMode sp, 1
If KeyDown(3) SpriteViewMode sp, 2
wind(1)
UpdateWorld
RenderWorld
Flip
Wend
End
;--------------------
Function wind(speed#)
For i=0 To grasscount-1
x#=EntityX(grass(i))
z#=EntityZ(grass(i))
RotateEntity grass(i),0,grass_dir(i),Cos(windwave+z)*0.5
Next
windwave=(windwave+speed#)
End Function