Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > Полезные функции

Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново...

Ответ
 
Опции темы
Старый 29.11.2007, 00:39   #16
Bagration
Знающий
 
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Re: Мало ресурсный огонь.

Мда... Ворон, соблюдай форматирование нормальное - читать НЕВОЗМОЖНО.
(Offline)
 
Ответить с цитированием
Старый 29.11.2007, 02:12   #17
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: Мало ресурсный огонь.

Воспользуисе тегом код а то читать не возможно...
(Offline)
 
Ответить с цитированием
Старый 29.11.2007, 09:52   #18
BOPOH
AnyKey`щик
 
Регистрация: 17.01.2007
Сообщений: 6
Написано одно полезное сообщение
Re: Мало ресурсный огонь.

блин . . вчерась поздно было . . .дико звиняюсь . . .
тут фишка что пламя само по себе горит . . его просчитывать ненуна. . .
создал и фсё. . .(если кому интерестно стучитесь в асю)


;BOPOH / red_kapcap icq 212602917
;DEMO_Fire
Graphics3D 800,600,16,2
Const SyncTime=30
Global sync=CreateTimer(SyncTime)
Global oldtime=0
Global fps#=SyncTime
SeedRnd MilliSecs()
AmbientLight 100,100,100
Global 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,200
MoveEntity Camera,0,2,-15:PointEntity camera,GLTarget
;;=================ini
Global GlobalFireTexture=FireTexture(1) ; 1 or 2
 
 
For ix=0 To 50
e=CreateNewFire(1,1,Rnd(1,2)):PositionEntity e,Rnd(-10,10),0,Rnd(-10,10)
Next
tExit=False
;===================================================
While Not tExit
SoftFPS#()
If KeyDown( 1 ) tExit=True
TurnEntity GLTarget,0,0.2,0
If fps>=SyncTime e=CreateNewFire(1,1,Rnd(1,2)):PositionEntity e,Rnd(-10,10),0,Rnd(-10,10)
 
SetBuffer BackBuffer()
UpdateWorld ()
RenderWorld
 
Color 255,10,10
Text 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=GlobalFireTexture
;FireTexture(Size)
ent=firemesh(wt,Ht,ent0)
;ent=Co3gamb3DPlaneC0(3,3)
EntityTexture ent,tx
EntityBlend ent,3
EntityFX ent,17
;---------------anim
SetAnimKey ent,0,0,1
SetAnimKey ent,1,0,1
TurnEntity ent,0,90,0
SetAnimKey ent,2,0,1
SetAnimKey ent,3,0,1
TurnEntity ent,0,90,0
SetAnimKey ent,4,0,1
SetAnimKey ent,5,0,1
TurnEntity ent,0,90,0
SetAnimKey ent,6,0,1
SetAnimKey ent,7,0,1
 
AddAnimSeq ent,8
Animate ent
;-----------------------
ent1=firemesh(wt,Ht*0.6,ent0)
EntityTexture ent1,tx
EntityBlend ent1,3
EntityFX ent1,16
RotateMesh ent1,0,45,0

SetAnimKey ent1,0,0,1
SetAnimKey ent1,1,0,1
TurnEntity ent1,0,-90,0
SetAnimKey ent1,2,0,1
SetAnimKey ent1,3,0,1
TurnEntity ent1,0,-90,0
SetAnimKey ent1,4,0,1
SetAnimKey ent1,5,0,1
TurnEntity ent1,0,-90,0
SetAnimKey ent1,6,0,1
SetAnimKey ent1,7,0,1
AddAnimSeq ent1,8
Animate ent1
 
ScaleEntity ent0,0.01,0.01,0.01
SetAnimKey ent0,0,0,0,1
frames=160
For ix=1 To frames Step 15
k#=Rnd(-0.2,0.3)
SetAnimKey ent0,ix,0,0,1
ScaleEntity ent0,1+k*0.5,1+k#,1+k*0.5
Next
frames=frames+10
ScaleEntity ent0,0.01,0.01,0.01
SetAnimKey ent0,frames,0,0,1
AddAnimSeq ent0,frames+10
Animate ent0
 
 
 
Return ent0
End Function 
;------------------------------------------------------------------------------------------------------------
Function FireTexture(Size=1)
Local x#,y#,strn%,kadr%,col%
Local w#,h#
sz=16 Shl size
strn=(sz*0.5)
tx=CreateTexture(sz,sz,3)
SetBuffer TextureBuffer(tx)
LockBuffer
For x=0 To sz-1
For y=0 To sz-1
WritePixelFast x,y,0;+$ff000000
Next
Next
UnlockBuffer
 
;--------------------generate picture
For ix#=0 To strn-1 ;Step 2;5
max#=strn
kStep#=(0.0+ix)/max#
kStepi#=1-kStep#
k0#=((kStep*10) And 7)*0.11794
k#=(ix And 3)
;----select color
Clr=Rnd(10)
Select True 
Case Clr<8
r=255:g=100:b=0
Case Clr>9
r=000:g=0:b=200*kStepi#
Default 
r=155:g=100*kStep#:b=0
End Select 
s#=0
a#=0.590+Rnd(0.08)
pos#=2
Xsm#=0
;-----loop
While pos#<strn
otklonenie#=1-((Abs(pos)/strn))
x=(ix#)*otklonenie#*otklonenie#*otklonenie#
Xsm#=Xsm#+(x-Xsm)*(0.09+(1-otklonenie#)*0.5)
;----correkt color
cr=( r*otklonenie# And $ff) Shl 16
cg=( g*otklonenie# And $ff) Shl 8
cb=( b*otklonenie# And $ff) 
ca=((155*otklonenie#+100) And $ff) Shl 24
col=cr+cg+cb+ca
;----------position
Select kadr
Case 0
Px=strn+pos+Xsm#:Py=strn+pos-Xsm#
Case 1
Px=strn-pos-Xsm#:Py=strn-pos+Xsm#
Case 2
Px=strn-pos+Xsm#:Py=strn-pos-Xsm#
Case 3
Px=strn+pos-Xsm#:Py=strn+pos+Xsm#
End Select
For dpl=1 To Size*3
WritePixel Px+Rnd(-1,1),Py+Rnd(-1,1),col ;Shr 1
Next
WritePixel Px,Py,col
s#=s+a
pos#=pos#+s#
kadr=kadr+1: If kadr>3 kadr=0
Wend
Next
 
Return Tx
End 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:Cls
For i1=1 To 320
b=Rnd(-20,20):Color 80+b,40+b,10
x=Rnd(sz):y=Rnd(sz)
For i=1 To 4
Plot x+Rnd(-1,1),y+Rnd(-1,1)
Next:Next
Return tx
End Function 
;------------------------------------------------------------------------------------------------------------
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Horror (06.01.2008)
Старый 06.01.2008, 12:37   #19
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Мало ресурсный огонь.

Блин! Классный огонь то, мне он чёто варкрафт3 напоминает!
(Offline)
 
Ответить с цитированием
Старый 21.02.2008, 00:21   #20
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: Мало ресурсный огонь.

А вот еще огонь, не помню где нашел...Тока его бы еще в 3д переделать, ато спрайтом не катит
Type element
 Field x#,y#,z#
End Type

Type particle
 Field x#,y#,t#,h,ang#
End Type

Const framq=32,siz=32,siz2=siz/2
Const dd#=.01,drad#=.3,dy#=.1

Graphics3D 800,600

fire=CreateTexture(siz,siz,6,framq)
For n=0 To framq-1
 firebuf=TextureBuffer(fire,n)
 LockBuffer firebuf
 t#=1.0*n/framq
 dt=Floor(1024*t#) Mod 256
 r=255
 g=255
 b=255
 If t#>=.25 Then
  b=255-dt
  If t#>=.5 Then
   b=0
   g=255-dt
   If t#>=.75 Then g=0
  End If 
 End If 
 
 Dim q#(siz,siz)
 For nn=0 To 5
  For x=0 To siz-1
   For y=0 To siz-1
    Select nn
     Case 0
      rad#=1.0-1.0*Sqr((x-siz2)*(x-siz2)+(y-siz2)*(y-siz2))/siz2
      If rad#<0 Then rad#=0
      q(x,y)=Rnd(0,1)*rad#
     Case 5
      a=Floor((255-255*n/framq)*q(x,y))
      WritePixelFast x,y,a Shl 24+r Shl 16+g Shl 8+b,firebuf:q(x,y)=0
     Default
      If x>0 And y>0 And x<siz-1 And y<siz-1 Then
       q(x,y)=.2*(q(x-1,y)+q(x+1,y)+q(x,y-1)+q(x,y+1)+q(x,y))
      End If
    End Select
   Next
  Next
 Next
 UnlockBuffer firebuf
Next

SetBuffer BackBuffer()

piv=CreatePivot()
PositionEntity CreateCamera(piv),0,10,-30
RotateEntity CreateLight(),45,0,45

SetBuffer BackBuffer()
Repeat
 For n=1 To 6
  p.particle=New particle
  p\ang=Rnd(-180,180)
  p\h=CreateSprite()
  EntityFX p\h,5+32
 Next
 n=0
 For p=Each particle

  p\x=p\x+.3*Sin(p\ang)
  p\y=p\y+.3*Cos(p\ang)
  p\t=p\t+.0003*(30+Abs(p\ang))+.0005*Abs(p\x)
  p\ang=p\ang-Sgn(p\ang)*2
  TurnEntity p\h,0,0,5
  sc#=3.5*(1.0-Abs(p\t-.45))
  n=n+1

  If p\t>=1 Then
   FreeEntity p\h
   Delete p
  Else
  PositionEntity p\h,p\x+.5*Cos(p\y*30),p\y,0
  ScaleSprite p\h,sc#,sc#
  EntityTexture p\h,fire,Floor(p\t*framq)
  End If
 Next
 
 RenderWorld
 Text 0,0,"Particle quantity:"+n
 Flip
 Delay 50
Until KeyHit(1)
(Offline)
 
Ответить с цитированием
Старый 21.02.2008, 11:50   #21
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Re: Мало ресурсный огонь.

Сообщение от NitE Посмотреть сообщение
PhysX
Там было px а тут ph....
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 21.02.2008, 12:16   #22
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Re: Мало ресурсный огонь.

Сообщение от AndruXa Посмотреть сообщение
А вот еще огонь, не помню где нашел...Тока его бы еще в 3д переделать, ато спрайтом не катит

Это, вообще-то огонь Матвея

Очень интересный, кстати
(Offline)
 
Ответить с цитированием
Старый 21.02.2008, 13:27   #23
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: Мало ресурсный огонь.

Там было px а тут ph....
px - PhysX
ph - Newton
Это, вообще-то огонь Матвея
Спасиб, теперь хоть автора буде знать
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плохая Туберкулезная палочка... Данил Болтовня 19 19.06.2009 14:20
Огонь при выстреле Тарас Шевченко 3D-программирование 1 11.02.2007 17:59
Огонь ЛысыЙ_Чук-Иванчук 3D-программирование 18 30.11.2006 23:39
Нужен огонь. ЛысыЙ_Чук-Иванчук 3D-программирование 22 01.11.2006 14:46
PhysX SDK 2.6.0 - мало и много jimon C++ 1 29.10.2006 23:59


Часовой пояс GMT +4, время: 14:12.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com