Показать сообщение отдельно
Старый 17.07.2008, 20:07   #31
Samarik
Оператор ЭВМ
 
Регистрация: 08.02.2007
Сообщений: 47
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Уже наболевшее..

весь код создания частиц
Type blood_particle

Field x#,y#,z#
Field speed#
Field speed2#
Field life#
Field particle_type
Field particle_copy

End Type

Function Create_blood(x#,y#,z#,col)

For i=1 To col
e.blood_particle=New blood_particle
e\x=x
e\y=y
e\z=z
e\speed=Rnd(.03,.09)
e\speed2=Rnd(.05,.1)
e\life=45

size#=Rnd(.1,.5)
e\particle_type=CreateSprite()
ScaleSprite e\particle_type,size,size
HideEntity e\particle_type

blood_tex=LoadTexture("tex/blood_particle2.png")
TextureFilter "blood_particle2",2
EntityTexture e\particle_type,blood_tex

e\particle_copy=CopyEntity(e\particle_type)

RotateSprite e\particle_copy,Rnd(360)
PositionEntity  e\particle_copy,x,y+.8,z
RotateEntity e\particle_copy,Rnd(-180),Rnd(-180),Rnd(-180)
EntityType e\particle_copy,Blood
Next

End Function



Function Update_blood()

For w.blood_particle=Each blood_particle

w\life=w\life-1*framePeriod*.01

MoveEntity w\particle_copy,0,w\speed2*framePeriod*.1,0
w\speed=w\speed-.03*framePeriod*.01
TranslateEntity w\particle_copy,0,w\speed*framePeriod*.08,0

bloodcoll=EntityCollided(w\particle_copy,PlaneC)
If bloodcoll <> 0 w\speed2 = .01

EntityAlpha w\particle_copy,w\life*.1*framePeriod*.02

If w\life < 0 Then
FreeEntity w\particle_copy
Delete w
particle2=0
Else
particle2=1
EndIf

Next

End Function
(Offline)
 
Ответить с цитированием