Показать сообщение отдельно
Старый 11.12.2006, 18:44   #1
pipns
Нуждающийся
 
Регистрация: 01.10.2006
Сообщений: 55
Написано одно полезное сообщение
(для 0 участников)
Мало ресурсный огонь.

Graphics3D 600, 600, 16, 2
SetBuffer BackBuffer( )
phWorldCreate( 1 )
phWorldSetGravity( 0, -9.8, 0 )
SeedRnd MilliSecs( )
Global Camera = CreateCamera( )
Global Light = CreateLight( )
Type SpriteFire
Field Sprite
Field AlphaD#
Field AlphaM#
Field MoveY#
Field MoveXZ#
End Type
Type Fire
Field TimeD%
Field TimeN%
Field PX#
Field PY#
Field PZ#
Field R
Field G
Field B
End Type

PositionEntity Camera, 0, 100, -200
RotateEntity Camera, 45, 0, 0

Create_Fire 70, -40, 0, 0, 255, 255, 55
Create_Fire 70, 40, 0, 0, 125, 125, 255

Mirror = CreateMirror( )
Repeat

Update_SpriteFire
Update_Fire

UpdateWorld
RenderWorld


Flip 0
Until KeyHit(1)
End

Function Create_SpriteFire ( AlphaD#=1, AlphaM#=.001, Scale#=1, MoveY#=.05, MoveXZ#=0, PX#=0, PY#=0, PZ#=0, R=0, G=0, B=0 )
sf.SpriteFire = New SpriteFire
sf\Sprite = CreateSprite ( )
sf\AlphaD# = AlphaD#
sf\AlphaM# = AlphaM#
sf\MoveY# = MoveY#
sf\MoveXZ# = MoveXZ#
EntityShininess sf\Sprite, 1
ScaleSprite sf\Sprite, Scale#, Scale#
EntityColor sf\Sprite, R, G, B
PositionEntity sf\Sprite, PX#, PY#, PZ#
End Function
Function Update_SpriteFire ( )
For sf.SpriteFire = Each SpriteFire
sf\AlphaD# = sf\AlphaD# - sf\AlphaM#
EntityAlpha sf\Sprite, sf\AlphaD#
TranslateEntity sf\Sprite, sf\MoveXZ#, sf\MoveY#, sf\MoveXZ#
If sf\AlphaD# <= 0 Then
FreeEntity sf\Sprite
Delete sf
EndIf
Next
End Function

Function Create_Fire ( Time=100, PX#=0, PY#=0, PZ#=0, R=0, G=0, B=0 )
fr.Fire = New Fire
fr\TimeD% = Time%
fr\TimeN% = Time%
fr\PX# = PX#
fr\PY# = PY#
fr\PZ# = PZ#
fr\R = R
fr\G = G
fr\B = B
End Function
Function Update_Fire ( )
For fr.Fire = Each Fire
fr\TimeD% = fr\TimeD% - 1
If fr\TimeD% <=0 Then
Create_SpriteFire 1, .001, 1, .05, Rnd(-.015,.015), fr\PX#+Rnd(-3,3), fr\PY#, fr\PZ#+Rnd(-3,3), fr\R, fr\G, fr\B
fr\TimeD% = fr\TimeN%
EndIf
Next
End Function
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Eugenes (30.06.2012)