Показать сообщение отдельно
Старый 10.07.2009, 12:59   #14
Ш.У.Р.И.К
AnyKey`щик
 
Регистрация: 09.06.2009
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Травка зеленеет

Пример колышашейся травки в Блитце из "уроков"

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
(Offline)
 
Ответить с цитированием