Мало ресурсный огонь.
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 |
Re: Мало ресурсный огонь.
Извените за мою не грамотность. Просто когда я пишу быстро, у меня получаеться чушь!
|
Re: Мало ресурсный огонь.
работает.
|
Re: Мало ресурсный огонь.
AMT_particle_system - рулит!!! =)
|
Re: Мало ресурсный огонь.
Цитата:
|
Re: Мало ресурсный огонь.
попросить у автора
|
Re: Мало ресурсный огонь.
2 jimon: Может вопрос глупый, но кто автор и как с ним связаться?
|
Re: Мало ресурсный огонь.
Странно... Может только лишь я не могу узреть в этом примере самого пламени? :4to:
|
Re: Мало ресурсный огонь.
Я тоже что-то пламени узреть не могу...:4to: А пива не пил...
|
Re: Мало ресурсный огонь.
Тарас Шевченко
попроси Maxus'а или Tormoz'а |
Re: Мало ресурсный огонь.
а я чего-то тоже пламени не заметил... где сам огонь-то? там только спарки.
|
Re: Мало ресурсный огонь.
Код:
function 'phworldcreate' not found |
Re: Мало ресурсный огонь.
Crystal, а "ph" в названии функции тебе ничего не говорит?
|
Re: Мало ресурсный огонь.
|
Re: Мало ресурсный огонь.
Код:
;a как вам мой вариант ???;BOPOH / red_kapcap icq 212602917;DEMO_Fire;Graphics3D 800,600,16,2Const SyncTime=30Global sync=CreateTimer(SyncTime)Global oldtime=0Global fps#=SyncTimeSeedRnd MilliSecs()AmbientLight 100,100,100Global light_amb=CreateLight():RotateEntity(light_amb,80,-20,0)plane=CreatePlane():EntityTexture plane,MakeTx_001()SetBuffer BackBuffer()Global GLTarget=CreatePivot()Global Camera=CreateCamera(GLTarget):CameraClsColor Camera,200,170,200MoveEntity Camera,0,2,-15:PointEntity camera,GLTarget;;=================iniGlobal GlobalFireTexture=FireTexture(1) ; 1 or 2For ix=0 To 50e=CreateNewFire(1,1,Rnd(1,2)):PositionEntity e,Rnd(-10,10),0,Rnd(-10,10)NexttExit=False;===================================================While Not tExitSoftFPS#()If KeyDown( 1 ) tExit=TrueTurnEntity GLTarget,0,0.2,0If fps>=SyncTime e=CreateNewFire(1,1,Rnd(1,2)):PositionEntity e,Rnd(-10,10),0,Rnd(-10,10)SetBuffer BackBuffer()UpdateWorld ()RenderWorldColor 255,10,10Text 0,0,"FPS="+RSet$(Str(FPS#),6) +" Triangles Rendered: "+RSet$(TrisRendered(),10)WaitTimer(Sync)Flip Wend ;-----------------------------------------\\\Function SoftFPS#()fps#=1000/(MilliSecs()-oldtime)oldtime=MilliSecs();Return fps#End Function ;-----------------------------------------///Function CreateNewFire(Size=1,wt=1,ht=2)ent0=CreatePivot()tx=GlobalFireTextureent=firemesh(wt,Ht,ent0)EntityTexture ent,txEntityBlend ent,3EntityFX ent,17;---------------animSetAnimKey ent,0,0,1SetAnimKey ent,1,0,1TurnEntity ent,0,90,0SetAnimKey ent,2,0,1SetAnimKey ent,3,0,1TurnEntity ent,0,90,0SetAnimKey ent,4,0,1SetAnimKey ent,5,0,1TurnEntity ent,0,90,0SetAnimKey ent,6,0,1SetAnimKey ent,7,0,1AddAnimSeq ent,8Animate ent;-----------------------ent1=firemesh(wt,Ht*0.6,ent0)EntityTexture ent1,txEntityBlend ent1,3EntityFX ent1,16RotateMesh ent1,0,45,0 SetAnimKey ent1,0,0,1SetAnimKey ent1,1,0,1TurnEntity ent1,0,-90,0SetAnimKey ent1,2,0,1SetAnimKey ent1,3,0,1TurnEntity ent1,0,-90,0SetAnimKey ent1,4,0,1SetAnimKey ent1,5,0,1TurnEntity ent1,0,-90,0SetAnimKey ent1,6,0,1SetAnimKey ent1,7,0,1AddAnimSeq ent1,8Animate ent1ScaleEntity ent0,0.01,0.01,0.01SetAnimKey ent0,0,0,0,1frames=160For ix=1 To frames Step 15k#=Rnd(-0.2,0.3)SetAnimKey ent0,ix,0,0,1ScaleEntity ent0,1+k*0.5,1+k#,1+k*0.5Nextframes=frames+10ScaleEntity ent0,0.01,0.01,0.01SetAnimKey ent0,frames,0,0,1AddAnimSeq ent0,frames+10Animate ent0Return ent0End Function Function FireTexture(Size=1)Local x#,y#,strn%,kadr%,col%Local w#,h#sz=16 Shl sizestrn=(sz*0.5)tx=CreateTexture(sz,sz,3)SetBuffer TextureBuffer(tx)LockBufferFor x=0 To sz-1For y=0 To sz-1WritePixelFast x,y,0;+$ff000000NextNextUnlockBuffer;--------------------generate pictureFor ix#=0 To strn-1 ;Step 2;5max#=strnkStep#=(0.0+ix)/max#kStepi#=1-kStep#k0#=((kStep*10) And 7)*0.11794k#=(ix And 3);----select colorClr=Rnd(10)Select True Case Clr9r=000:g=0:b=200*kStepi#Default r=155:g=100*kStep#:b=0End Select s#=0a#=0.590+Rnd(0.08)pos#=2Xsm#=0;-----loopWhile pos#3 kadr=0WendNextReturn TxEnd Function Function FireMesh(w#=1,h#=1,par)Mes=CreateMesh(par):CrSur=CreateSurface(Mes)AddVertex(CrSur,-w,0,0,1,0,0)AddVertex(CrSur,0,h,0,1,1,0)AddVertex(CrSur,w,0,0,0,1,0)AddVertex(CrSur,0,0,w#,0,1,0)AddVertex(CrSur,0,h,0,0,0,0)AddVertex(CrSur,0,0,-w#,1,0,0)AddTriangle(CrSur,0,1,2)AddTriangle(CrSur,3,4,5)Return mes End Function Function MakeTx_001(sz=32)tx=CreateTexture(sz,sz)SetBuffer TextureBuffer(tx) ClsColor 80,40,10:ClsFor i1=1 To 320b=Rnd(-20,20):Color 80+b,40+b,10x=Rnd(sz):y=Rnd(sz)For i=1 To 4Plot x+Rnd(-1,1),y+Rnd(-1,1)Next:NextReturn txEnd Function |
Часовой пояс GMT +4, время: 22:35. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot